Suche…


Einführung

JavaFX Scene Builder ist ein visuelles Layout-Tool, mit dem Benutzer JavaFX-Anwendungsbenutzeroberflächen schnell und ohne Codierung entwerfen können. Es wird verwendet, um FXML-Dateien zu generieren.

Bemerkungen

JavaFX Scene Builder ist ein visuelles Layout-Tool, mit dem Benutzer JavaFX-Anwendungsbenutzeroberflächen schnell und ohne Codierung entwerfen können. Benutzer können UI-Komponenten per Drag & Drop in einen Arbeitsbereich ziehen, ihre Eigenschaften ändern und Stylesheets anwenden. Der FXML-Code für das von ihnen erstellte Layout wird automatisch im Hintergrund generiert. Das Ergebnis ist eine FXML-Datei, die mit einem Java-Projekt kombiniert werden kann, indem die Benutzeroberfläche an die Anwendungslogik gebunden wird.

Aus der Perspektive eines Model View Controllers (MVC):

  • Die FXML-Datei, die die Beschreibung der Benutzeroberfläche enthält, ist die Ansicht.
  • Der Controller ist eine Java-Klasse, die optional die Initializable-Klasse implementiert, die als Controller für die FXML-Datei deklariert ist.
  • Das Modell besteht aus auf Java-Seite definierten Domänenobjekten, die über den Controller mit der Ansicht verbunden werden können.

Scene Builder Installation

  1. Laden Sie die neueste Version von Scene Builder von der Gluon- Website herunter und wählen Sie das Installationsprogramm für Ihre Plattform oder die ausführbare Dose aus.

  2. Doppelklicken Sie nach dem Herunterladen des Installationsprogramms, um Scene Builder auf Ihrem System zu installieren. Eine aktualisierte JRE ist enthalten.

  3. Doppelklicken Sie auf das Scene Builder-Symbol, um es als eigenständige Anwendung auszuführen.

  4. IDE-Integration

    Obwohl Scene Builder eine eigenständige Anwendung ist, werden FXML-Dateien erstellt, die in ein Java SE-Projekt integriert sind. Beim Erstellen dieses Projekts in einer IDE ist es zweckmäßig, einen Link zum Scene Builder-Pfad anzugeben, damit FXML-Dateien bearbeitet werden können.

    • NetBeans: Unter Windows gehen Sie zu NetBeans-> Tools-> Options-> Java-> JavaFX. Unter Mac OS X gehen Sie zu NetBeans-> Preferences-> Java-> JavaFX. Geben Sie den Pfad für das Scene Builder-Home an. Pfad zum Szenen-Generator - NetBeans
    • IntelliJ: Unter Windows gehen Sie zu IntelliJ-> Einstellungen-> Sprachen & Frameworks> JavaFX. Unter Mac OS X gehen Sie zu IntelliJ -> Einstellungen -> Sprachen und Frameworks -> JavaFX. Geben Sie den Pfad für das Scene Builder-Home an. Szenenbildnerpfad - IntelliJ
    • Eclipse: Unter Windows gehen Sie zu Eclipse-> Window-> Preferences-> JavaFX. Unter Mac OS X gehen Sie zu Eclipse-> Preferences-> JavaFX. Geben Sie den Pfad für das Scene Builder-Home an. Szenenbildnerpfad - Eclipse

Ein bisschen Geschichte

Das Scene Builder-Projekt wurde mit JavaFX von Oracle erstellt und ist Open Source im OpenJFX-Projekt.

Oracle stellte Binaries bis Scene Builder 2.0 zur Verfügung, einschließlich der JavaFX-Funktionen vor der Veröffentlichung von Java SE 8u40. Daher sind neue Funktionen wie die Spinner Steuerelemente nicht enthalten.

Gluon übernahm die Distribution der Binärversionen und ein aktueller Scene Builder 8+ kann von hier aus für jede Plattform heruntergeladen werden .

Es enthält die neuesten Änderungen in JavaFX sowie die neuesten Verbesserungen und Fehlerbehebungen.

Das Open Source-Projekt kann hier gefunden werden, wo Probleme, Funktionsanforderungen und Pull-Anforderungen erstellt werden können.

Die Oracle-Legacy-Binärdateien können hier noch heruntergeladen werden .

Tutorials

Scene Builder-Tutorials finden Sie hier:

FXML-Tutorials finden Sie hier.

Benutzerdefinierte Steuerelemente

Gluon hat die neue Funktion, die das Importieren von Drittanbieter-Gläsern mit benutzerdefinierten Steuerelementen ermöglicht, mit dem Bibliotheksmanager (verfügbar seit Scene Builder 8.2.0) vollständig dokumentiert .

Bibliotheksmanager

SO Fragen

Tag bezogen: SceneBuilder

Grundlegendes JavaFX-Projekt mit FXML

Dies ist ein Basisprojekt, das FXML verwendet, das mit NetBeans erstellt wurde (Neues Projekt -> JavaFX -> JavaFX FXML-Anwendung). Es enthält nur drei Dateien:

Hauptanwendungsklasse

package org.stackoverflow;

import javafx.application.Application;
import javafx.fxml.FXMLLoader;
import javafx.scene.Parent;
import javafx.scene.Scene;
import javafx.stage.Stage;

public class BasicApplication extends Application {

    @Override
    public void start(Stage stage) throws Exception {
        Parent root = FXMLLoader.load(getClass().getResource("BasicFXML.fxml"));

        Scene scene = new Scene(root);

        stage.setScene(scene);
        stage.show();
    }

    public static void main(String[] args) {
        launch(args);
    }
}

FXML-Datei

<?xml version="1.0" encoding="UTF-8"?>

<?import java.lang.*?>
<?import java.util.*?>
<?import javafx.scene.*?>
<?import javafx.scene.control.*?>
<?import javafx.scene.layout.*?>

<AnchorPane id="AnchorPane" prefHeight="200" prefWidth="320" xmlns:fx="http://javafx.com/fxml/1" fx:controller="org.stackoverflow.BasicFXMLController">
    <children>
        <Button layoutX="126" layoutY="90" text="Click Me!" onAction="#handleButtonAction" fx:id="button" />
        <Label layoutX="126" layoutY="120" minHeight="16" minWidth="69" fx:id="label" />
    </children>
</AnchorPane>

Regler

package org.stackoverflow;

import javafx.event.ActionEvent;
import javafx.fxml.FXML;
import javafx.scene.control.Label;

public class BasicFXMLController {

    @FXML
    private Label label;

    public void initialize() {
        // TODO
    }   

    @FXML
    private void handleButtonAction(ActionEvent event) {
        label.setText("Hello World!");
    }

}

Lauf

Beim Erstellen und Ausführen des Projekts sollte ein kleines Fenster mit einer anklickbaren Schaltfläche angezeigt werden:

Führen Sie das Projekt aus

Wie es funktioniert

Kurz gesagt lädt der FXMLLoader in der Hauptanwendungsklasse basicFXML.fxml aus dem jar / FXMLLoader.load(getClass().getResource("BasicFXML.fxml")) , wie von FXMLLoader.load(getClass().getResource("BasicFXML.fxml")) .

Beim Laden von basicFXML.fxml findet der Loader den Namen der Controller-Klasse, wie in fx:controller="org.stackoverflow.BasicFXMLController" in der FXML angegeben.

Dann erstellt der Loader eine Instanz dieser Klasse, in der versucht wird, alle Objekte @FXML , die eine fx:id in der FXML haben und in der Controller-Klasse mit der @FXML FXML-Annotation gekennzeichnet sind.

In diesem Beispiel erstellt der FXMLLoader das Label basierend auf <Label ... fx:id="label"/> und @FXML private Label label; die @FXML private Label label; in das @FXML private Label label; des @FXML private Label label; .

Wenn die gesamte FXML geladen ist, ruft der FXMLLoader schließlich die initialize des Controllers auf, und der Code, der einen Aktionshandler mit der Schaltfläche registriert, wird ausgeführt.

Bearbeitung

Die FXML-Datei kann zwar innerhalb der IDE bearbeitet werden, wird jedoch nicht empfohlen, da die IDE nur eine grundlegende Syntaxprüfung und automatische Vervollständigung, jedoch keine visuelle Anleitung bietet.

Am besten öffnen Sie die FXML-Datei mit Scene Builder, in dem alle Änderungen in der Datei gespeichert werden.

Der Scene Builder kann gestartet werden, um die Datei zu öffnen: Scene Builder-Symbol

Oder die Datei kann mit Scene Builder direkt von der IDE aus geöffnet werden:

  • Doppelklicken Sie in NetBeans auf der Registerkarte "Projekt" auf die Datei oder klicken Sie mit der rechten Maustaste und wählen Sie " Open .
  • Klicken Sie in IntelliJ auf der Registerkarte "Projekt" mit der rechten Maustaste auf die Datei und wählen Sie " Open In Scene Builder .
  • Klicken Sie in Eclipse auf der Registerkarte "Projekt" mit der rechten Maustaste auf die Datei und wählen Sie " Open with Scene Builder .

Bearbeiten Sie die Datei mit dem Scene Builder

Wenn Scene Builder ordnungsgemäß installiert und der Pfad zur IDE hinzugefügt wurde (siehe Anmerkungen unten), wird die Datei geöffnet:

FXML mit Scene Builder bearbeitet

Sie können Änderungen vornehmen, indem Sie neue Container oder neue Steuerelemente aus den linken Bereichen ziehen. Eigenschaften und Layoutwerte können in den rechten Bereichen geändert werden.

Beachten Sie, dass eines der ID-Tags, das das Injizieren der FXML in den Java-Code ermöglicht, fx:id . Es kann in der festgelegt werden - Code - Fenster:

Einstellung fx: id

Speichern Sie die Datei nach dem Anwenden der Änderungen (Scene Builder -> Datei -> Speichern). Wenn Sie Änderungen an der Datei über die IDE vornehmen, werden diese beim Speichern der Datei in Scene Builder aktualisiert.



Modified text is an extract of the original Stack Overflow Documentation
Lizenziert unter CC BY-SA 3.0
Nicht angeschlossen an Stack Overflow