Huis Persoonlijke financiën 10 Verschillen tussen JavaFX en Swing - dummies

10 Verschillen tussen JavaFX en Swing - dummies

Inhoudsopgave:

Video: Visual Studio Code Java Development Basics 2024

Video: Visual Studio Code Java Development Basics 2024
Anonim

Als je een ervaren Java-programmeur bent, heb je ongetwijfeld met Swing samengewerkt om gebruikersinterfaces te maken. Oracle heeft Swing niet volledig verlaten - het is niet verouderd en Swing-applicaties blijven werken. Maar er wordt geen werk meer gedaan om Swing te verbeteren, en Oracle heeft duidelijk gemaakt dat JavaFX de toekomst is.

Hier zijn tien basisverschillen tussen JavaFX en Swing.

In JavaFX is de hele wereld een podium

In Swing wordt de klasse die uw gebruikersinterfacecomponenten bevat een -frame genoemd en wordt deze gedefinieerd door de JFrame-klasse. Een frame is in feite een leeg venster waaraan u een -paneel kunt toevoegen dat dient als een container voor uw gebruikersinterface-elementen. Een panel wordt gedefinieerd door de klasse JPanel.

Een Swing-toepassing is eigenlijk een klasse die de klasse JFrame uitbreidt. Om gebruikersinterfacecomponenten weer te geven, voegt u componenten toe aan een JPanel en voegt u vervolgens het paneel aan het frame toe.

JavaFX gebruikt de metafoor van een theater om de containers op het hoogste niveau van een toepassing te modelleren. Een fase (gedefinieerd door de Stage-klasse) vertegenwoordigt de container van het hoogste niveau - meestal een venster, maar op sommige besturingssystemen kan de tafel het volledige schermoppervlak vertegenwoordigen. De afzonderlijke bedieningselementen en andere componenten waaruit de gebruikersinterface bestaat, bevinden zich in een scène (gedefinieerd door de klasse Scene). Een toepassing kan meer dan één scène hebben, maar slechts een van de scènes kan op elk moment in het werkgebied worden weergegeven.

Een scène bevat een scènemeter, , het belangrijkste concept in JavaFX. De scènegrafiek is een verzameling van alle elementen waaruit een gebruikersinterface bestaat: groepen, lay-outs, besturingselementen en vormen. Deze objecten worden knooppunten genoemd en zijn allemaal afgeleid van de klasse Node. De klasse Node heeft veel nuttige functies en mogelijkheden die automatisch beschikbaar worden gemaakt voor elk object dat u aan uw gebruikersinterface kunt toevoegen. De klasse Node definieert bijvoorbeeld een methode setRotate waarmee u elk knooppunt in de scènegrafiek kunt roteren.

In JavaFX zijn lay-outbeheerders knooppunten

In Swing wordt een lay-out gekoppeld aan een JPanel. Het JPanel op het hoogste niveau geeft de basislay-out voor het frame. Als u extra lay-outs wilt nesten in de lay-out op het hoogste niveau, moet u extra JPanels maken, de bijbehorende lay-outs instellen en deze vervolgens toevoegen aan de lay-out op hoger niveau.

In JavaFX zijn lay-outs subklassen van de klasse Node, net als besturingselementen en vormen. Lay-outs bevatten een verzameling knooppunten en elk knooppunt in een lay-out kan van elk type knooppunt zijn: een besturingselement, een vorm of een andere lay-out.Dit schema is veel minder omslachtig dan Swings associatie van lay-outs met panelen.

JavaFX heeft gebeurtenisafhandeling verbeterd

Zowel JavaFX als Swing gebruiken gebeurtenisafhandeling om te reageren op gebruikersinvoergebeurtenissen. U zult echter merken dat gebeurtenissen in JavaFX beter doordacht en meer consistent zijn dan hun equivalenten in Swing. Maar de belangrijkste reden voor het afhandelen van gebeurtenissen in JavaFX is vanwege de afhankelijkheid van eigenschappen.

JavaFX ondersteunt eigenschappen

JavaFX ondersteunt de concepten van eigenschappen en gebruikt eigenschappen uitgebreid in zijn klassen. Simpel gezegd, een eigenschap is een variabele waarvan de waarde kan worden waargenomen. U kunt een listener registreren bij elke eigenschap, zodat u code kunt schrijven die automatisch wordt geactiveerd wanneer de eigenschap verandert. Bovendien kunt u aan eigenschappen aan elkaar binden, wat betekent dat als een eigenschapswaarde verandert, de andere eigenschapswaarde hiermee automatisch verandert.

Omdat bijna alle kenmerken van elementen van de gebruikersinterface worden beheerd door middel van eigenschappen, biedt JavaFX gebeurtenisafhandeling die ongeoorloofd is in Swing. In JavaFX kunt u bijvoorbeeld een gebeurtenislistener koppelen aan de kleur van een vorm. Als de vorm van kleur verandert, wordt de gebeurtenislistenercode uitgevoerd. Je hebt misschien geen gebruik van de mogelijkheid, maar je kunt het gebruiken als dat nodig is.

JavaFX is skinnable met CSS

Een van de beste functies van JavaFX is dat u het formatteren kunt besturen met Cascading Style Sheets (CSS). Zowat elk aspect van het uiterlijk van uw gebruikersinterface kan worden ingesteld met een stijlregel en u kunt eenvoudig toestaan ​​dat de gebruiker selecteert welke van de verschillende beschikbare stijlpagina's moet worden toegepast op de scène. U kunt dus het volledige uiterlijk van uw toepassing wijzigen met één enkele methodeaanroep.

JavaFX heeft consistentere besturingselementen

Over het algemeen zult u merken dat de besturingshiërarchie van JavaFX completer is dan die van Swing. Beide hebben alle basisbedieningen: knoppen, selectievakjes, keuzelijsten met invoervak ​​en dergelijke. Maar JavaFX heeft verschillende interessante besturingselementen die Swing niet heeft, zoals het samenvouwbare besturingselement TitledPane en het Accordion-besturingselement dat meerdere Titlopane-besturingselementen in een stapel rangschikt. En het feit dat al deze besturingselementen door CSS kunnen worden weergegeven, geeft hen een enorm voordeel ten opzichte van Swing.

JavaFX heeft speciale effecten

De javafx. tafereel. effectpakket bevat een aantal klassen die gemakkelijk speciale effecten kunnen toepassen op elk knooppunt in de scènegrafiek. Met deze klassen kunt u eenvoudig schaduwen, reflecties, vervaging en andere interessante visuele effecten toepassen die de weergave van uw gebruikersinterface kunnen transformeren.

Animatie is gemakkelijker in JavaFX

Animatie is mogelijk in Swing, maar Swing biedt hier geen directe ondersteuning voor. Om een ​​Swing-component te animeren, moet u uw eigen timers instellen en uw eigen logica bouwen om de animatie uit te voeren.

JavaFX daarentegen heeft ingebouwde ondersteuning voor geavanceerde animaties die op elk knooppunt in de scènegrafiek kunnen worden toegepast. U kunt een van de verschillende ingebouwde overgangsklassen gebruiken om algemene animaties uit te voeren, zoals vervagen, rotaties of bewegingspaden.U kunt ook de klassen KeyFrame en Timeline gebruiken om eenvoudig aangepaste animaties in te stellen.

JavaFX ondersteunt moderne aanraakapparaten

Swing heeft geen ondersteuning voor moderne aanraakapparaten. JavaFX daarentegen heeft ingebouwde ondersteuning voor algemene aanraakbewegingen zoals scrollen, vegen, roteren en zoomen. Het afhandelen van deze gebeurtenissen in JavaFX is net zo eenvoudig als het afhandelen van elk ander type gebeurtenis: u installeert eenvoudigweg een gebeurtenislistener bij de aanraakgebeurtenis en schrijft vervolgens code die op de juiste manier reageert.

JavaFX heeft geen equivalent voor JOptionPane

Het zou niet eerlijk zijn om deze lijst met tien verschillen volledig te vullen met punten die duidelijk de voorkeur geven aan JavaFX. Hier is een kleine ergernis van JavaFX: het heeft geen ingebouwde equivalent voor de JOptionpane-klasse van Swing, wat erg handig is voor het weergeven van korte waarschuwingsberichten of voor het verkrijgen van eenvoudige invoer door de gebruiker. In JavaFX moet je je eigen equivalent van deze nuttige klasse maken.

10 Verschillen tussen JavaFX en Swing - dummies

Bewerkers keuze

Hoe u Flash-video maakt en codeert - dummies

Hoe u Flash-video maakt en codeert - dummies

Als de pagina's die u maakt, zijn gewonnen ' t kan worden bekeken op mobiele apparaten (zoals een iPad of een smartphone), kunt u webpagina's maken met prachtige Flash-video. Adobe Flash Professional CS6 heeft een eigen ingebouwde video-encoder. Full-motionvideo in Flash is iets heel moois. U past de video aan voor het bekijken door de doelgroep ...

Hoe een aanpasbare interface te maken in CSS3 - dummies

Hoe een aanpasbare interface te maken in CSS3 - dummies

De grote variëteit en soorten schermen gebruikt om informatie weer te geven, maakt het nodig dat uw CSS3-commando's de gebruiker toestaan ​​om het formaat van de elementen naar wens aan te passen. In de meeste gevallen kunt u de gebruiker eenvoudig toestaan ​​om het element op elke gewenste grootte te maken. Er kunnen zich echter situaties voordoen waarin u de grootte van de grootte moet controleren ...

Hoe u een eenvoudige tabel op uw webpagina maakt - dummies

Hoe u een eenvoudige tabel op uw webpagina maakt - dummies

Tabellen laten u organiseer informatie op uw webpagina en geef het een georganiseerde uitstraling die uw bezoekers nuttig zullen vinden. Bij gebruik zoals bedoeld, hebben tabellen rijen en kolommen. Voor elke spot waar een rij en kolom elkaar kruisen, hebt u een tabelcel. Elke cel kan zijn eigen opmaak hebben: de gegevens erin ...

Bewerkers keuze

Hoe Postproduction Shareninging Filters werken - dummies

Hoe Postproduction Shareninging Filters werken - dummies

Verscherpingsfilters werken in postproductie door de randen (of aangrenzende gebieden met tonaal contrast) te benadrukken aan elkaar) in een afbeelding. Ze creëren een fijne highlight aan de donkere kant van de rand en een piepklein lowlight aan de lichtere kant van de rand. Dit toegevoegde contrast zorgt ervoor dat de randen er scherper uitzien vanaf een ...

HDR Work-Flow voor foto's met één belichting - dummies

HDR Work-Flow voor foto's met één belichting - dummies

In grote lijnen, enkele belichting hoog dynamisch bereik volgt dezelfde workflow als HDR-fotografie tussen haakjes. Er kunnen kleine verschillen zijn, dus hier is een overzicht van de werkstroom: configureer uw camera voor single-shot HDR. Het enige dat u zoekt, is de beste foto die u kunt maken. Besteed aandacht aan de lichtomstandigheden, het onderwerp, beweging en ...

Geavanceerde compacte en superzoomcamera's voor HDR-fotografie - dummies

Geavanceerde compacte en superzoomcamera's voor HDR-fotografie - dummies

Stap omhoog van compacte digitale camera's binnen het budgetbereik, vindt u duurdere compacte digitale camera's voor HDR-fotografie, ook wel high-end compacts, superzoomlenzen en dSLR-look-alikes genoemd. Er zijn zoveel vaak overlappende categorieën dat het je hoofd laat draaien. De twee dingen die deze reeks camera's gemeen hebben, zijn hun ...

Bewerkers keuze

In te schakelen Class Tracking in QuickBooks 2013 - dummies

In te schakelen Class Tracking in QuickBooks 2013 - dummies

Om activity-based costing te gebruiken (ABC ) in QuickBooks 2013 moet u de QuickBooks Class Tracking-functie inschakelen. Met Class Tracking kunt u inkomsten- en onkostentransacties categoriseren als niet alleen vallen in inkomsten- en uitgavenrekeningen, maar ook als vallen in bepaalde klassen. Volg deze stappen om Class Tracking in QuickBooks in te schakelen: Kies Bewerken → Voorkeuren ...

Gebruikt om een ​​exemplaar van een QuickBooks-gegevensbestand te gebruiken - dummies

Gebruikt om een ​​exemplaar van een QuickBooks-gegevensbestand te gebruiken - dummies

Ongeacht of de client verzendt handmatig een accountantskopie van een QuickBooks-gegevensbestand, e-mails een accountantsexemplaar, of verzendt een accountantskopie via de Intuit-bestandsoverdrachtservice, u gebruikt de kopie van de accountant door Bestand → Verzend bedrijfsdossier → Accountantskopie → Open & converteer overzetten te kiezen Bestand commando. Wanneer u deze opdracht kiest, geeft QuickBooks een ...

Hoe Audit Trails te gebruiken in QuickBooks - dummies

Hoe Audit Trails te gebruiken in QuickBooks - dummies

Als u besluit om meerdere gebruikers toegang te geven tot de QuickBooks-gegevens bestand, zult u de QuickBooks Audit Trail-functie waarderen, die bijhoudt wie welke wijzigingen aan het QuickBooks-gegevensbestand aanbrengt. U kunt transacties niet verwijderen uit de lijst of geschiedenis van de audittrail, behalve door gegevens te archiveren en te condenseren. Audit trail inschakelen ...