10 Unterschiede zwischen JavaFX und Swing-

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

Hier sind zehn grundlegenden Unterschiede zwischen JavaFX und Schaukel.

In JavaFX, alles ist die Welt eine Bühne

In Swing, die die Klasse Ihrer Komponenten Benutzeroberfläche hält heißt ein Rahmen und wird durch die definierte JFrame Klasse. Ein Rahmen ist im Wesentlichen ein leeres Fenster, zu dem Sie eine hinzufügen Panel, die dazu dient als Container für Ihre User-Interface-Elemente. Eine Jury wird durch die definierte JPanel Klasse.

Eine Swing-Anwendung ist eigentlich eine Klasse, die die sich JFrame Klasse. Um User-Interface-Komponenten anzuzeigen, fügen Sie Komponenten ein JPanel und dann die Platte mit dem Rahmen hinzuzufügen.

JavaFX nutzt die Metapher eines Theaters, die Container der obersten Ebene einer Anwendung zu modellieren. EIN Stufe (Definiert durch die Stufe Klasse) stellt die höchste Stufe Behälter - in der Regel ein Fenster, aber auf einigen Betriebssystemen kann die Bühne die gesamte Anzeigefläche darstellen. Die einzelnen Steuerungen und anderen Komponenten, die die Benutzeroberfläche bilden, sind in einem enthalten sind Szene (Definiert durch die Szene Klasse). Eine Anwendung kann mehr als eine Szene haben, aber nur eine der Szenen auf der Bühne zu einem bestimmten Zeitpunkt angezeigt werden.

Eine Szene enthält ein Szenengraph, Das ist das wichtigste Konzept in JavaFX. Der Szenengraph ist eine Sammlung aller Elemente, die eine Benutzeroberfläche bilden - Gruppen, Layouts, Kontrollen und Formen. Diese Ziele werden genannt Knoten und sind alle aus der abgeleiteten Knoten Klasse. Das Knoten Klasse hat viele nützliche Funktionen und Fähigkeiten, die für jedes Objekt automatisch zur Verfügung gestellt werden Sie Ihre Benutzeroberfläche hinzufügen. Beispielsweise die Knoten Klasse definiert ein setRotate Methode, die Sie einen beliebigen Knoten in der Szene die Grafik drehen können.

Knoten im JavaFX, Layout-Manager sind

In Swing wird ein Layout mit einer zugehörigen JPanel. Die Top-Level JPanel gibt das Basis-Layout für den Rahmen. Wenn Sie nisten zusätzliche Layouts innerhalb des Layouts der obersten Ebene wollen, müssen Sie zusätzliche erstellen JPanels, setzen ihre zugehörigen Layouts und sie dann in den übergeordneten Layout.

In JavaFX, Layouts sind Unterklassen der Knoten Klasse wie Kontrollen und Formen. Layouts enthalten eine Sammlung von Knoten und jeder Knoten in einem Layout kann jede Art von Knoten enthalten sein: eine Steuerung, eine Form oder ein anderes Layout. Diese Regelung ist viel weniger umständlich als Swing Vereinigung von Layouts mit Paneelen.

JavaFX hat verbesserte Ereignisbehandlung

Sowohl JavaFX und Swing-Anwendung Ereignisverarbeitung auf Benutzereingaben Ereignisse zu reagieren. Allerdings werden Sie feststellen, dass die Ereignisse in JavaFX besser durchdacht sind und konsequenter als ihre Entsprechungen in Swing. Aber der wichtigste Grund, Event-Handling in JavaFX verbessert, ist wegen seiner Abhängigkeit von Eigenschaften.

JavaFX unterstützt Eigenschaften

JavaFX unterstützt die Konzepte Eigenschaften und nutzt Eigenschaften ausgiebig durch seine Klassen. Einfach ausgedrückt, ist eine Eigenschaft, ein Wert, Variable, deren beobachtet werden kann. Sie können einen Zuhörer mit jeder Eigenschaft registrieren, so dass Sie Code zu schreiben, wenn die Eigenschaftsänderungen automatisch ausgelöst wird. Darüber hinaus können Sie binden Eigenschaften miteinander, was bedeutet, dass, wenn ein Eigenschaftswert ändert, damit die anderen Eigenschaftswert ändert sich automatisch.

Da fast alle Eigenschaften von User-Interface-Elemente durch Eigenschaften verwaltet werden, bietet JavaFX Event-Handling, dass der in Swing unerhört ist. Zum Beispiel in JavaFX können Sie einen Ereignis-Listener auf die Farbe einer Form befestigen. Wenn die Form Farbe ändert, wird Ihr Event-Listener-Code ausgeführt. Sie dürfen keine Verwendung für die Fähigkeit haben, aber Sie können es verwenden, wenn Sie benötigen.

JavaFX ist skinnable mit CSS

Eines der besten Features von JavaFX ist, dass Sie mit Cascading Style Sheets (CSS) der Formatierung steuern kann. Fast jeder Aspekt des Aussehens der Benutzeroberfläche kann durch eine Stilregel festgelegt werden, und Sie können die Benutzer die Auswahl eines von mehreren verfügbaren Stylesheets leicht erlauben, um die Szene zu übernehmen. So können Sie das gesamte Aussehen Ihrer Anwendung mit einem einzigen Methodenaufruf ändern.

JavaFX hat eine konsequentere Kontrolle

In der Regel werden Sie feststellen, dass die JavaFX Steuerungshierarchie vollständiger als Swing ist. Beide verfügen über alle grundlegenden Kontrollen - Schaltflächen, Kontrollkästchen, Comboboxen, und dergleichen. Aber JavaFX hat einige interessante Steuerelemente, die Schwingen nicht, wie die zusammenklappbaren haben TitledPane Steuerung und die Akkordeon Steuerung, die mehrere arrangiert TitledPane steuert in einem Stapel. Und die Tatsache, dass all diese Kontrollen durch die CSS-Design anpassbares sind gibt ihnen einen großen Vorteil gegenüber Schaukel.

JavaFX hat Spezialeffekte

Das javafx.scene.effect Paket enthält eine Anzahl von Klassen, die leicht spezielle Effekte zu jedem Knoten in der Szenengraph anwenden können. Diese Klassen können Sie leicht anwenden Schatten, Spiegelungen, Unschärfen und andere interessante visuelle Effekte, die das Aussehen der Benutzeroberfläche verwandeln kann.

Die Animation ist einfacher in JavaFX

Die Animation ist möglich in Swing, aber Schaukel bietet keine direkte Unterstützung für sie. Um eine Swing-Komponente zu animieren, müssen Sie Ihre eigenen Timer einrichten und Ihre eigene Logik aufbauen, um die Animation durchführen.

Im Gegensatz dazu hat JavaFX integrierte Unterstützung für anspruchsvolle Animationen, die zu einem beliebigen Knoten im Szenengraph angewendet werden kann. Sie können eine von mehreren integrierten Übergangsklassen verwenden, um gemeinsame Animationen ausführen wie Überblendungen, Drehungen oder Bewegungspfade. Oder können Sie mit dem KeyFrame und Zeitleiste Klassen auf einfache Weise benutzerdefinierte Animationen einrichten.

JavaFX unterstützt moderne Touch-Geräte

Schaukel fehlt jegliche Unterstützung für moderne Touch-Geräte. Im Gegensatz dazu hat JavaFX integrierte Unterstützung für gemeinsame Touch-Gesten wie Scrollen, Streichen, Drehen und Zoomen. diese Ereignisse in JavaFX Handhabung ist so einfach wie jede andere Art von Event-Handling: Sie einfach ein Ereignis-Listener auf dem Touch-Ereignis installieren und dann Code schreiben, der in geeigneter Weise reagiert.

JavaFX hat keine Entsprechung zu JOptionPane

Es wäre nicht fair, vollständig diese Liste der zehn Differenzen mit Punkten füllen, die eindeutig JavaFX begünstigen. Hier ist ein kleines Ärgernis von JavaFX: Es hat keine eingebaute in Äquivalent zu Swing JOptionPane Klasse, die für die Anzeige von Kurzalarmmeldungen oder sich einfach eine Eingabe vom Benutzer sehr praktisch ist. In JavaFX, haben Sie Ihre eigene Äquivalent zu dieser nützlichen Klasse Handwerk.

Menü