Schommel

Swing is een kader voor Java uit de Java Foundation Classes en ontwikkeling gerichte grafische user interfaces. Een deel van de Swing kader klassen zijn implementaties van widgets, zoals tekstvakken, knoppen, panelen en tafels.

De Swing-bibliotheek wordt gebruikt als de officiële bibliotheek voor het creëren van grafische user interfaces in Java. Het is een uitbreiding van eerdere Abstract Window Toolkit. Het belangrijkste verschil tussen de twee is dat Swing componenten volledig zijn geschreven in Java-code.

Geschiedenis

De Internet Foundation Classes een grafische bibliotheek voor Java oorspronkelijk ontwikkeld door Netscape Communications Corporation en vrijgegeven voor het eerst in de december 16, 1996.

De 2 april 1997, Sun Microsystems en Netscape Communications Corporation aangekondigd hun voornemen om IFC combineren met andere technologieën om de Java Foundation Classes creëren. In aanvulling op de onderdelen die oorspronkelijk door IFC, Swing introduceerde een mechanisme dat de look en feel van elke component van een aanvraag mogen worden gewijzigd zonder dat belangrijke wijzigingen in de broncode te maken. De introductie van de steun aan de look en feel van een plug-in kon de Swing componenten om het uiterlijk van inheemse componenten evenaren met behoud van het voordeel dat ze platformonafhankelijk. Deze functie maakt het zeer eenvoudig om een ​​blik van een applicatie die sterk afwijkt van alle andere inheemse programma's.

Oorspronkelijk uitgebracht als een boek van download, werd Swing opgenomen als onderdeel van de Java Standard Edition sinds versie 1.2. De Swing klassen zijn opgenomen in de verpakking hiërarchie.

Architectuur

Swing is een bibliotheek

  • platformonafhankelijk
  • georiënteerde componenten
  • uitrekbaar
  • wijzigbaar
  • Configureerbaar
  • losjes gekoppelde
  • licht
  • verzending van evenementen
  • een GUI kader MVC
  • met een enkele thread

Typisch, de voorwerpen van de modellen Swing componenten verantwoordelijk voor een beknopte interface voor de bepaling van de gebeurtenissen die worden uitgegeven en eigenschappen toegankelijk voor het datamodel gebruiken met de bijbehorende JComponent. Gezien deze ontwikkeling model MVC is een losjes gekoppelde pad van objecten in relatie gezamenlijk, het model biedt de gebruikelijke manieren om event listeners te maken om objecten van het datamodel. Typisch, deze gebeurtenissen zijn centric model en worden in kaart gebracht door de specialisatie van de JComponent in een welomschreven gebeurtenis om de GUI-component.

Bijvoorbeeld, de JTable een model genaamd tafelmodel die een interface beschrijft een dergelijke tabel moet tot de gegevens. Een standaard uitvoering van deze werkt op een tweedimensionale matrix.

De visuele component van een Swing JComponent is het object gebruikt om "vertegenwoordigen" grafisch toezicht GUI conceptuele. Een onderscheid of Swing, zoals GUI kader, is het gebruik van de doorlopende voorstelling van GUI controles. Dit onderscheid is een bron van complicatie wanneer je mix AWT controles, met behulp van inheemse controles, met controles in een Swing GUI.

Opgemerkt moet worden dat de typische gebruik van de Swing kader van de creatie van aangepaste modellen niet nodig, aangezien het kader biedt een set van standaard implementaties die transparant zijn, standaard gekoppeld aan de overeenkomstige dochters klasse JComponent in de Swing bibliotheek. In het algemeen kan alleen complexe componenten zoals tabellen en uitzicht op verzamelingen veranderingen in hun standaard templates nodig.

Banden met AWT

De Swing bibliotheek is een uitbreiding van AWT in plaats van vervanging. In feite is elke Swing GUI gebaseerd op een lichtgewicht component AWT zwaargewicht, omdat alle componenten in de top-level Swing containers uit te breiden op het hoogste niveau AWT. De functionaliteit van rendering gebruikt door Swing om onderdelen te trekken wordt geleverd door Java2D, een ander deel van de AWT. Het onderdeel wordt toevertrouwd aan java.awt.LayoutManager. etc.

Verschillen met AWT: het werkingsmechanisme

Sinds de eerste versies van Java, een gedeelte van de Abstract Window Toolkit ontvangen API platformonafhankelijke implementatie van de GUI. In AWT, in feite de applicatie maakt gebruik van Java-objecten voor de inheemse componenten die specifiek zijn voor het besturingssysteem in gebruik te controleren en dat maakt de GUI. Dit betekent dat het gedrag van de componenten in de implementatie-afhankelijke systeem geplaatst. Om deze reden worden de AWT componenten zwaargewicht componenten geroepen: wat de toepassing "ziet" de oprichting van een AWT component, in feite overeen met de toewijzing van middelen door het besturingssysteem. In tegenstelling worden Swing componenten vaak beschreven als licht, ze niet de toewijzing van middelen nodig in de inheemse toolkit GUI besturingssysteem.

Elementen gebruikt in AWT Swing

Eind qua visuele samenstelling en beheer Swing bezit relatieve indeling die werken op de tegenovergestelde wijze ten opzichte van de layout absolute. Deze richting geeft "vloeistof" is een directe beleid van Swing ontwikkeling die naar voren komt uit de as van de AWT kader en de bijbehorende veronderstelling applets operationele omgeving die het ontwerp en de ontwikkeling van de oorspronkelijke GUI toolkit voor Java heeft geleid. Conceptueel, deze visie van het management van de lay-out is vrij gelijkaardig aan degene die de weergave van HTML-inhoud in de browser omgaat, en richt zich op de dezelfde set van concepten die de makers hebben gemotiveerd.

Terwijl de afzonderlijke componenten volledig zijn gemaakt in Java-code, worden de top-level container gedeeltelijk uitgevoerd in native code.

Voordelen ten opzichte van AWT

De belangrijkste voordelen van Swing dan AWT het gevolg van het feit dat Swing componenten uit pure Java code. In feite betekent dit dat de componenten werken hetzelfde voor alle platforms waarvoor een virtuele machine. De fouten die tijdens de uitvoering van het grafische systeem zijn hetzelfde voor alle platforms, waardoor oplossen met een eenvoudige verbetering van de bibliotheken.

Omdat de componenten zijn ontwikkeld in Java, de Swing systeem heeft controle over de graphics rendering-component, en dit heeft het mogelijk de ontwikkeling van een API waarmee een applicatie de look kunt aanpassen en feel van de grafische interface. Kortom, het ontwerp en de grafische stijl van de componenten die niet nodig zijn om grafische toolkit oorspronkelijke besturingssysteem, maar worden gereproduceerd door middel van hun emulatie. Dit betekent dat u een nieuwe L & amp kan krijgen; F simpelweg door de uitvoering van de Java-klassen nodig.

Het belangrijkste voordeel van de Swing bibliotheek is dat het kan de programmeur abstract zich van de door de architectuur van de grafische door het besturingssysteem goedgekeurd systeem beperkingen. Het grafische systeem AWT wordt beïnvloed door deze beperkingen, omdat de set van componenten en functies die ze bieden de toepassing zijn beperkt tot een gemeenschappelijke norm, een minimum noemer die kan worden ondersteund door alle besturingssystemen waarop de AWT moeten werken .

Swing componenten autonoom draaien uw eigen grafiek en gedrag; Het is waar dat de uiteindelijke weergave moet worden toegewezen aan het besturingssysteem, aangezien het laatstgenoemde, dat het beheer van videoapparaten en randapparatuur gebruikersinvoer wijzen is, maar het is ook waar dat Swing "vertaalt" zijn semantiek van de onderliggende componenten van het besturingssysteem met een veel zwakkere band dan de architectuur zelf dell'AWT mogen komen.
Aldus, bijvoorbeeld, gemaakt van elke component van Swing is getekend op het grafische apparaat besturingssysteem met een wrapper geschikte geïmplementeerd in Java. Maar, anders dan de AWT componenten, die het mandaat van de tekening om inheemse widgets van het OS, de componenten van Swing zijn verantwoordelijk voor hun eigen rendering.

Nadelen opzichte AWT

Het belangrijkste nadeel opzichte AWT is die van een langzamere uitvoering.

Banden met SWT

De Standard Widget Toolkit is een toolkit concurrent oorspronkelijk ontwikkeld door IBM en nu onderhouden door de Eclipse Foundation. SWT implementaties hebben meer gemeen met de zwaargewicht AWT componenten. Dit geeft voordelen nauwkeuriger trouw aan de onderliggende native venster toolkit, ten koste van grotere blootstelling aan meer programmering natieve programmeermodel.

De komst van SWT heeft geleid tot een grote kloof tussen de ontwikkelaars van de Java Desktop met vele anderen gezien een groot voorstander van de SWT en Swing. De ontwikkeling van Sun Swing blijft zich richten op de loyaliteit van de look en feel in elk toolkit venster. Inmiddels zijn er andere hulpmiddelen PLAFs gelovigen, van wie velen zijn op de site javootoo.

Er was een grote discussie over de prestaties van SWT dan Swing; De afhankelijkheid van de SWT van JNI maakt het vertragen wanneer de Java GUI-componenten en de noodzaak om gegevens uit te wisselen, maar sneller om zich te vestigen als de model gegevens in de GUI wordt geladen.

SWT gebruikt het platform van de ramen zeer goed, maar sommigen vinden het minder effectief als een technologie voor cross-platform ontwikkeling. Met behulp van de high-level functionaliteit van de native venster toolkit, SWT brengt om de situatie te zien in de jaren 90 waar de toolkit probeerden om de verschillen in het gedrag en de focus management, event management en grafische lay-outs te maskeren. Het uitblijven van gelijke gedrag op elk platform programmering fouten kan veroorzaken subtiel en moeilijk op te lossen, met negatieve gevolgen voor het uiterlijk van uw interactie en GUI hebben.

Voorbeeld

Het volgende is een voorbeeld van Hello world programma dat gebruik maakt van Swing.

(0)
(0)
Commentaren - 0
Geen reacties

Voeg een Commentaar

smile smile smile smile smile smile smile smile
smile smile smile smile smile smile smile smile
smile smile smile smile smile smile smile smile
smile smile smile smile
Tekens over: 3000
captcha