Zuhause Persönliche Finanzen 10 Unterschiede zwischen JavaFX und Swing - Dummies

10 Unterschiede zwischen JavaFX und Swing - Dummies

Inhaltsverzeichnis:

Video: JavaFX [10] - Einführung in Properties 2025

Video: JavaFX [10] - Einführung in Properties 2025
Anonim

Wenn Sie ein erfahrener Java-Programmierer sind, haben Sie zweifellos mit Swing zusammengearbeitet, um Benutzeroberflächen zu erstellen. Oracle hat Swing nicht vollständig aufgegeben - es ist nicht veraltet, und Swing-Anwendungen funktionieren weiterhin. Aber es wird keine Arbeit mehr getan, um Swing zu verbessern, und Oracle hat klar gemacht, dass JavaFX die Zukunft ist.

Hier sind zehn grundlegende Unterschiede zwischen JavaFX und Swing.

In JavaFX ist die ganze Welt eine Bühne

In Swing wird die Klasse, die Ihre Benutzeroberflächenkomponenten enthält, als -Frame bezeichnet und durch die JFrame-Klasse definiert. Ein Frame ist im Wesentlichen ein leeres Fenster, zu dem Sie ein -Feld hinzufügen können, , das als Container für Ihre Benutzeroberflächenelemente dient. Ein Panel wird von der JPanel-Klasse definiert.

Eine Swing-Anwendung ist eigentlich eine Klasse, die die JFrame-Klasse erweitert. Um Komponenten der Benutzeroberfläche anzuzeigen, fügen Sie Komponenten zu einem JPanel hinzu und fügen das Panel dem Frame hinzu.

JavaFX verwendet die Metapher eines Theaters, um die Container der obersten Ebene einer Anwendung zu modellieren. Eine -Stufe (definiert durch die Stage-Klasse) stellt den Container der höchsten Ebene dar - normalerweise ein Fenster, aber auf einigen Betriebssystemen kann die Bühne die gesamte Anzeigeoberfläche darstellen. Die einzelnen Steuerelemente und andere Komponenten, aus denen die Benutzeroberfläche besteht, sind in einer -Szene (definiert durch die Scene-Klasse) enthalten. Eine Anwendung kann mehr als eine Szene haben, aber nur eine der Szenen kann zu einem bestimmten Zeitpunkt auf der Bühne angezeigt werden.

Eine Szene enthält ein Szenengraph, , das wichtigste Konzept in JavaFX. Das Szenendiagramm ist eine Sammlung aller Elemente, aus denen eine Benutzeroberfläche besteht - Gruppen, Layouts, Steuerelemente und Formen. Diese Objekte werden Knoten genannt und sind alle von der Node-Klasse abgeleitet. Die Node-Klasse verfügt über viele nützliche Funktionen und Funktionen, die automatisch jedem Objekt zur Verfügung gestellt werden, das Sie Ihrer Benutzeroberfläche hinzufügen können. Beispielsweise definiert die Node-Klasse eine setRotate-Methode, mit der Sie einen beliebigen Knoten im Szenendiagramm drehen können.

In JavaFX sind Layout-Manager Knoten

In Swing ist ein Layout einem JPanel zugeordnet. Das JPanel der obersten Ebene gibt das grundlegende Layout für den Frame an. Wenn Sie zusätzliche Layouts innerhalb des Layouts der obersten Ebene verschachteln möchten, müssen Sie zusätzliche JPanels erstellen, ihre zugehörigen Layouts festlegen und sie dann zum übergeordneten Layout hinzufügen.

In JavaFX sind Layouts Unterklassen der Node-Klasse, genau wie Steuerelemente und Shapes. Layouts enthalten eine Sammlung von Knoten, und jeder in einem Layout enthaltene Knoten kann eine beliebige Art von Knoten sein: ein Steuerelement, eine Form oder ein anderes Layout.Dieses Schema ist viel weniger mühsam als Swings Zuordnung von Layouts zu Panels.

JavaFX hat die Ereignisbehandlung verbessert

Sowohl JavaFX als auch Swing verwenden die Ereignisbehandlung, um auf Benutzereingabeereignisse zu reagieren. Sie werden jedoch feststellen, dass Ereignisse in JavaFX besser durchdacht und konsistenter sind als ihre Entsprechungen in Swing. Der Hauptgrund für die Verbesserung von Ereignissen in JavaFX liegt jedoch in seiner Abhängigkeit von Eigenschaften.

JavaFX unterstützt Eigenschaften

JavaFX unterstützt die Konzepte von Eigenschaften und verwendet Eigenschaften in allen Klassen. Einfach ausgedrückt ist eine Eigenschaft eine Variable, deren Wert beobachtet werden kann. Sie können einen Listener mit einer Eigenschaft registrieren, sodass Sie Code schreiben können, der automatisch ausgelöst wird, wenn sich die Eigenschaft ändert. Darüber hinaus können Sie -Eigenschaften aneinander binden, dh wenn sich ein Eigenschaftswert ändert, ändert sich automatisch auch der andere Eigenschaftswert.

Da fast alle Eigenschaften von Benutzeroberflächenelementen über Eigenschaften verwaltet werden, bietet JavaFX eine Ereignisbehandlung, die in Swing unerhört ist. In JavaFX können Sie beispielsweise einen Ereignis-Listener an die Farbe einer Form anhängen. Wenn die Form die Farbe ändert, wird der Ereignis-Listener-Code ausgeführt. Sie haben möglicherweise keine Verwendung für die Funktion, aber Sie können sie bei Bedarf verwenden.

JavaFX ist mit CSS

skinnbar Eine der besten Funktionen von JavaFX ist, dass Sie die Formatierung mit Cascading Style Sheets (CSS) steuern können. Fast jeder Aspekt des Erscheinungsbildes Ihrer Benutzeroberfläche kann durch eine Stilregel festgelegt werden, und Sie können dem Benutzer einfach erlauben, auszuwählen, welche der verschiedenen verfügbaren Stilvorlagen auf die Szene angewendet werden sollen. So können Sie das gesamte Erscheinungsbild Ihrer Anwendung mit einem einzigen Methodenaufruf ändern.

JavaFX verfügt über konsistentere Steuerelemente

Im Allgemeinen werden Sie feststellen, dass die JavaFX-Steuerelementhierarchie vollständiger ist als die von Swing. Beide verfügen über alle grundlegenden Steuerelemente - Schaltflächen, Kontrollkästchen, Kombinationsfelder und dergleichen. JavaFX verfügt jedoch über einige interessante Steuerelemente, die Swing nicht besitzt, wie das reduzierbare TitledPane-Steuerelement und das Accordion-Steuerelement, das mehrere TitledPane-Steuerelemente in einem Stapel anordnet. Und die Tatsache, dass all diese Steuerelemente durch CSS skinnbar sind, gibt ihnen einen großen Vorteil gegenüber Swing.

JavaFX hat Spezialeffekte

Der Javafx. Szene. Das Effektpaket enthält eine Reihe von Klassen, die Spezialeffekte auf jeden beliebigen Knoten im Szenengraphen anwenden können. Mit diesen Klassen können Sie problemlos Schatten, Reflexionen, Unschärfen und andere interessante visuelle Effekte anwenden, die das Erscheinungsbild Ihrer Benutzeroberfläche verändern können.

Animation ist einfacher in JavaFX

Animation ist in Swing möglich, aber Swing bietet keine direkte Unterstützung dafür. Um eine Swing-Komponente zu animieren, müssen Sie eigene Timer einrichten und eine eigene Logik für die Animation erstellen.

Im Gegensatz dazu unterstützt JavaFX anspruchsvolle Animationen, die auf jeden beliebigen Knoten im Szenengraphen angewendet werden können. Sie können eine von mehreren integrierten Übergangsklassen verwenden, um allgemeine Animationen wie Überblendungen, Rotationen oder Bewegungspfade auszuführen.Oder Sie können die KeyFrame- und Timeline-Klassen verwenden, um benutzerdefinierte Animationen einfach einzurichten.

JavaFX unterstützt moderne Touch-Geräte

Swing kennt keine Unterstützung für moderne Touch-Geräte. Im Gegensatz dazu unterstützt JavaFX gängige Touch-Gesten wie Scrollen, Wischen, Drehen und Zoomen. Die Handhabung dieser Ereignisse in JavaFX ist so einfach wie die Handhabung anderer Ereignisarten: Sie installieren einfach einen Ereignis-Listener auf dem Berührungsereignis und schreiben dann den Code, der entsprechend reagiert.

JavaFX hat kein Äquivalent zu JOptionPane

Es wäre nicht fair, diese Liste mit zehn Unterschieden vollständig mit Punkten zu füllen, die eindeutig JavaFX bevorzugen. Hier ist ein kleines Ärgernis von JavaFX: Es hat kein eingebautes Äquivalent zu der JOptionpane-Klasse von Swing, was sehr praktisch ist, um kurze Alarmmeldungen anzuzeigen oder einfache Eingaben vom Benutzer zu erhalten. In JavaFX müssen Sie ein eigenes Äquivalent zu dieser nützlichen Klasse erstellen.

10 Unterschiede zwischen JavaFX und Swing - Dummies

Die Wahl des Herausgebers

Wie man Dateien in C ++ kopiert - Dummies

Wie man Dateien in C ++ kopiert - Dummies

Ah, eine Datei kopieren - etwas so einfaches, es passiert alles Zeit. Kopiere diese Datei dorthin; Kopieren Sie diese Datei hier. Aber was genau passiert, wenn Sie eine Datei kopieren? Sie erstellen tatsächlich eine neue Datei und füllen diese mit dem gleichen Inhalt wie die Originaldatei. Und wie machst du das? Nun, ...

Anleitung zum Erstellen eines Verzeichnisses in C ++ - Dummies

Anleitung zum Erstellen eines Verzeichnisses in C ++ - Dummies

Wenn Sie ein Verzeichnis erstellen möchten, können Sie das MKdir Funktion. Wenn die Funktion das Verzeichnis für Sie erstellen kann, gibt sie eine 0 zurück. Andernfalls wird ein Wert ungleich Null zurückgegeben. (Wenn Sie es ausführen, erhalten Sie eine -1, aber Ihre beste Wette - immer - ist es, gegen 0 zu testen.) Hier ist einige ...

Wie man eine einfache mathematische Vorlage in C ++ - Dummies

Wie man eine einfache mathematische Vorlage in C ++ - Dummies

Mit einer mathematischen Vorlage erstellt, die man normalerweise benötigt Zugriff auf eine Vielzahl von Berechnungen, aber nur jeweils eine oder zwei dieser Berechnungen. Zum Beispiel, wenn jemand Ihre Hypothek berechnet, muss er die Amortisationsrechnung nicht kennen. Die Person kann jedoch die Amortisationsberechnung benötigen, wenn Sie mit ...

Die Wahl des Herausgebers

ASVAB: Lesen für die Studie - Dummies

ASVAB: Lesen für die Studie - Dummies

Lesen für die Zwecke des Studiums der ASVAB ist eine andere Art des Lesens. Leseverständnis erfordert nur, dass Sie Informationen lange genug im Kurzzeitgedächtnis speichern, um einige Sekunden später eine Frage zu beantworten. Zum Lesen für die Zwecke des Studiums müssen Sie wichtige Informationen in Ihr Langzeitgedächtnis einpflegen - ...

ASVAB Mathematik Wissenspraxis: Ungleichungen - Dummies

ASVAB Mathematik Wissenspraxis: Ungleichungen - Dummies

Als wäre Algebra nicht anspruchsvoll genug, einige Fragen zur Der Subtest Mathematik auf dem ASVAB wird auch eine Ungleichheit einwerfen - nur um sicherzustellen, dass Sie aufmerksam sind. Wie erkennst du eine Ungleichheit? Halten Sie Ausschau nach Fragen mit mehr als oder weniger als Symbolen oder nach Graphen, die eine Zahlenlinie mit einem ...

ASVAB Mathematische Wissenspraxis: Fraktionen - Dummies

ASVAB Mathematische Wissenspraxis: Fraktionen - Dummies

Der Subtest Mathematikwissen auf dem ASVAB wird Fragen beinhalten, die Sie fragen mit Teilen eines Ganzen oder Fraktionen arbeiten. Diese Fragen können das Multiplizieren, Dividieren, Addieren, Subtrahieren und Konvertieren von Brüchen beinhalten, ähnlich den folgenden Übungsfragen. Übungsfragen Welche Fraktionen sind nicht gleichwertig? Gegeben einfach den Ausdruck. Antworten und Erklärungen Das richtige ...

Die Wahl des Herausgebers

Hinzufügen von Flash-Audio- und Videodateien in Dreamweaver - Dummies

Hinzufügen von Flash-Audio- und Videodateien in Dreamweaver - Dummies

Adobe besitzt sowohl Flash als auch Dreamweaver Daher finden Sie großartige Unterstützung für Flash-Dateien in Dreamweaver. Das Dialogfeld "FLV einfügen" erleichtert das Festlegen von Parametern für Flash. Dreamweaver erkennt sogar automatisch die Größe von Flash-Videodateien. Sie können Flash auch zum Erstellen und Einfügen von Audiodateien verwenden, wobei nur der Player angezeigt wird.

Einstellen von Bildhelligkeit und -kontrast in Dreamweaver - Dummies

Einstellen von Bildhelligkeit und -kontrast in Dreamweaver - Dummies

Dreamweaver bietet Werkzeuge zum Erstellen von Bildern Einstellungen, einschließlich der Helligkeit und des Kontrastes. Durch die Anpassung der Bildhelligkeit können Sie die Gesamtlichtmenge in einem Bild ändern. Kontrast steuert den Unterschied zwischen hellen und dunklen Bereichen eines Bildes. Wenn Sie die Dreamweaver-Bearbeitungswerkzeuge verwenden, wird das Bild dauerhaft geändert, wenn die Seite ...

Hinzufügen von Bildern zu Ihrer Website in Dreamweaver - Dummies

Hinzufügen von Bildern zu Ihrer Website in Dreamweaver - Dummies

Wenn Sie Ihrer Website ein Bild hinzufügen, erscheint anfangs fast magisch, weil der Prozess mit Dreamweaver so einfach ist. Die Herausforderung bei Webgrafiken besteht darin, sie nicht zu Ihren Seiten hinzuzufügen, sondern gut aussehende Bilder zu erstellen, die schnell im Browser Ihres Viewers geladen werden. Sie benötigen ein anderes Programm wie Photoshop, Photoshop Elements oder Fireworks, um ...