Einführung in Javafx
Wenn wir Javas grafische Schnittstellenbibliothek erwähnen, hören wir normalerweise Swing oder ältere AWT, einschließlich der beiden in vielen Büchern eingeführten. Viele Schulen und Schulungskurse unterrichten auch diese beiden Technologien. Tatsächlich sind beide Technologien seit langem veraltet. Obwohl es nicht schwierig ist, Swing zu lernen, ist es eigentlich sehr schwierig, die Schnittstelle mit ihr zu schreiben. Da die Schnittstelle und der Code nicht getrennt sind, muss der Code beim Schreiben mit einer großen Anzahl von Koordinaten gefüllt werden, und es ist äußerst schwierig zu ändern. Das Beste in dieser Hinsicht ist der WPF von Microsoft, und ich kann nur sagen, wer es benutzen kann und wer es weiß.
Obwohl Java diese Bemühungen nicht aufgegeben hat, hat Java natürlich die Schwäche von Java nicht aufgegeben. Der heute eingeführte Javafx ist die neueste Technologie für Java, um grafische Schnittstellenprogramme zu schreiben. Wenn Sie planen, grafische Schnittstellenprogramme in Java ohne historische Belastung zu schreiben, wird es sehr empfohlen, Javafx zu verwenden.
Dies ist die Ressourcen und Dokumentation auf Javafx auf der offiziellen Website von Oracle.
Dies ist ein offizielles Beispielprogramm. Wir können uns auf den JavaFX -Abschnitt beziehen, um zu erfahren, wie man es benutzt. Unten finden Sie eines der fraktalen Javafx -Programme. Wenn Sie auf die obigen Zahlen klicken, können Sie verschiedene mikroskopische Anzeigen eingeben. Es fühlt sich an, als würde man die mikroskopische Welt der Viren beobachten, die sehr schockierend ist.
So installieren
Solange Sie die neueste Version von JDK 8 installiert haben, können Sie die JavaFX -Bibliothek verwenden. Wenn es nicht installiert ist, beginnen Sie es schnell mit der Installation.
Fangen Sie schnell an
Das erste Programm
Erstellen Sie ein neues Projekt, schreiben Sie dann die folgende Klasse und kompilieren Sie sie und führen Sie es aus, um die Ergebnisse zu sehen. Es besteht keine Notwendigkeit, dieses Programm zu erklären. Wenn Sie Erfahrung im Lernen im Swing und in anderen grafischen Schnittstellen -Frameworks haben, sollte es sehr einfach sein, diesen Code zu verstehen. Da Javafx eine neue Sache ist, verwende ich natürlich auch die neue Funktion von Java 8 - Lambda -Ausdrücken.
Paket yitian.javafxSample; import Javafx.Application.Application; Import Javafx.scene.scene; importieren javafx.scene.control.button; javafx.scene.layout.StackPane; Import Javafx.stage.stage. btn = new button (); btn.setText ("hello, world"); World! "); PrimaryStage.Setscene (Szene); primaryStage.show ();} öffentliche statische void main (String [] args) {starten (args);}}Der laufende Screenshot ist wie folgt.
Benutzereingabe
Dieses Programm kann verwendet werden, um Benutzeranmeldungssituationen zu verarbeiten. Der Code ist wie folgt und die wichtigen Teile wurden kommentiert. Der letzte Teil des Codes verwendet die Setonaction -Funktion, um der Schaltfläche ein Klickereignis hinzuzufügen. Der Text wird angezeigt, wenn die Schaltfläche klickt.
Public Class UserInput erweitert die Anwendung {@Override public void start (Stage PrimaryStage) löst eine Ausnahme aus {// Grid -Layout -Gridpan -Gitter = new Gridpane (); Insets (25, 25, 25, 25)); // neue Szenenszene = neue Szene (Grid, 300, 275); PrimaryStage.SetsCene (Szene); // Fügen Sie den TitleText -Szenen -Szene = neuer Text hinzu ("Begrüßung"); 1); // Fügen Sie Tags und TextboxesLabel -Benutzername hinzu = neuer Label ("Benutzername:"); Grid.Add (Benutzername, 0, 1); Textfield Usertextfield = new textfield (); PassageField (); Grid.Add (PWBox, 1, 2); // Submission -Taste btn = neue Taste ("Login"); actionTarget = new text (); grid.add (actionTarget, 1, 6); Btn.setonaction (Ereignis -> {actionTarget.setFill (color.firebrick); actionTarget.setText ("login");}); PrimaryStage.Settitle ("javafx willkommen"; {starten (args);}}Der Screenshot des Programms läuft wie folgt.
Dieses Programm ist eigentlich nicht schwierig, es wird das Netzlayout verwendet und fügt dann jedes Element dem Raster hinzu. Für die Attributbedeutung von Grid -Layout finden Sie in der offiziellen Abbildung.
Entwerfen einer Benutzeroberfläche mit FXML
Moderne grafische Schnittstellen -Frameworks unterstützen die Trennung von Schnittstelle und Code, und die häufiger verwendete beschreibende Sprache ist XML wie QML für QT und XAML für WPF. Natürlich hat Javafx auch eine ähnliche Sprache namens FXML. Wenn Sie FXML im Detail kennen müssen, können Sie sich auf die Artikel -Einführung in FXML auf der offiziellen Website von Oracle verweisen.
Schreiben wir das obige kleine Beispiel in FXML neu, und jeder Teil wird kommentiert. Wenn Sie andere ähnliche beschreibende Sprachen gelernt haben, werden Sie feststellen, dass diese tatsächlich ähnlich sind. Das einzige, was zu beachten ist, ist das FX: Controller -Attribut im Layout, das einen Controller angibt, und die Funktion des Controllers besteht darin, den entsprechenden Code der Schnittstelle zu schreiben.
<? javafx.scene.text.text?> <!-layout-> <gridpane xmlns = "http://javafx.com/javafx" xmlns: fx = "http://javafx.com/fxml" fx: controller = "yitian.javafxSampe prefWidth="600.0" alignment="center" hgap="10" vgap="10"> <padding> <Insets top="25" right="25" bottom="10" left="25"/> </padding> <!--Welcome text--> <Text text="Welcome" GridPane.columnIndex="0" GridPane.rowIndex="0" GridPane.columnSpan="2"> <font> <Font name="Consolas" size="20"/> </font> </Text> <Label text="Username:" GridPane.columnIndex="0" GridPane.rowIndex="1"/> <TextField GridPane.columnIndex="1" GridPane.rowIndex="1"/> <Label text="password:" GridPane.columnIndex="0" GridPane.rowIndex="2"/> <PasswordField fx:id="passwordField" GridPane.columnIndex="1" GridPane.rowIndex="2"/> <!--Button and prompt text--> <HBox spacing="10" alignment="bottom_right" GridPane.columnIndex="1" Gridpane.rowIndex = "4"> <button text = "password" onaction = "#showPasswordbutton"/> </hbox> <text fx: id = "HintText" Gridpane.ColumnIndex = "0" Gridpane.columnspan = "2" Gridpan.Halignment = "rechte" Gridpane.Rowdex = "gridpan.halignment =" rechter "rechte" Gridpane.RowPane.Rowdex = "gridpan.halnment
Im Folgenden finden Sie den Controller, der dieser FXML -Datei entspricht, die eine Standard -Java -Klasse ist. Die durch das fx: id -Attribut in FXML angegebene ID kann als Klassenfeld im Controller deklariert werden, über den Sie mit den Schnittstellenkomponenten interagieren können. Aus dem gleichen Grund ist der von Onaction erklärte Ereignishandler eine Methode im Controller. Beachten Sie, dass diese Felder und Methoden mit @FXML Annotation kommentiert werden müssen.
import javafx.event.ActionEvent;import javafx.fxml.FXML;import javafx.scene.control.PasswordField;import javafx.scene.text.Text;public class Controller {@FXML private Text hintText;@FXML private PasswordField passwordField;@FXML protected void showPasswordButton(ActionEvent event) {HintText.setText ("Passwort anzeigen:" + passwordfield.getText ());}}Das Letzte, was zu ändern ist, ist das Hauptprogramm. Im Hauptprogramm müssen Sie FXMlloader verwenden, um FXML -Ressourcen zu laden, und die anderen Teile haben sich nicht viel verändert.
öffentliche Klasse UsefxML erweitert die Anwendung {@Override public void start (Stage PrimaryStage) löst Ausnahme aus {übergeordneter Root = fxmloader.load (getClass (). getResource ("Ui.fxml")) Fxml "); primaryStage.setscene (szene); primaryStage.show ();} public static void main (String [] args) {starten (args);}}Der Screenshot des Programms läuft wie folgt.
Wenn Sie die Komponentenstile ändern möchten, bietet JavaFX eine CSS -Schnittstelle, mit der wir Stile mithilfe von CSS -Dateien direkt ändern können. Zunächst müssen Sie einen Verweis auf das entsprechende Stylesheet in der FXML -Datei hinzufügen. Die @ vor dem Dateinamen bedeutet, dass die CSS -Datei und die FXML -Datei im selben Verzeichnis enthalten sind.
<Gridpane> <Stylesheets> <url value = "@style.css"/> </stylesheets> <gridpane/>
Stilblätter ähneln gewöhnlichen Stilblättern, außer dass Javafx-spezifisches Präfix erforderlich ist.
#BTNShowPassword {-fx-background-Color: Deeppink;}Der ID -Selektor wird oben verwendet, daher sind in FXML auch ID -Attribute erforderlich.
<Button id = "btnshowpassword" text = "showPassword" onaction = "#showPasswordbutton"/>
Das Programm nach der Anpassung ist in der Abbildung dargestellt. Ich habe nur einfach die Hintergrundfarbe der Schaltfläche geändert. Tatsächlich gibt es viele Stile, die geändert werden können, einschließlich Programmhintergrund usw. Studenten, die interessiert sind, können es selbst versuchen.
Zusammenfassen
In dem oben genannten Artikel geht es um diesen Artikel über ein vorläufiges Verständnis von Javafx. Wenn ein Schüler Java zum Schreiben grafischer Schnittstellenprogramme verwenden möchte, können Sie JavaFX verwenden, was eine sehr gute Wahl ist. Hoffe es wird für alle hilfreich sein. Wenn es Mängel gibt, hinterlassen Sie bitte eine Nachricht, um darauf hinzuweisen. Vielen Dank an Freunde für Ihre Unterstützung für diese Seite!