Sök…


Introduktion

JavaFX Scene Builder är ett visuellt layoutverktyg som låter användare snabbt utforma användargränssnitt för JavaFX-applikationer, utan kodning. Det används för att generera FXML-filer.

Anmärkningar

JavaFX Scene Builder är ett visuellt layoutverktyg som låter användare snabbt utforma användargränssnitt för JavaFX-applikationer, utan kodning. Användare kan dra och släppa UI-komponenter till ett arbetsområde, ändra deras egenskaper, tillämpa formatmallar och FXML-koden för den layout som de skapar genereras automatiskt i bakgrunden. Resultatet är en FXML-fil som sedan kan kombineras med ett Java-projekt genom att binda användargränssnittet till applikationens logik.

Från ett MVC-perspektiv (Model View Controller):

  • FXML-filen, som innehåller beskrivningen av användargränssnittet, är vyn.
  • Styrenheten är en Java-klass, som valfritt implementerar klassen Initialiserbar, som förklaras som styrenhet för FXML-filen.
  • Modellen består av domänobjekt, definierade på Java-sidan, som kan anslutas till vyn via styrenheten.

Scen Builder Installation

  1. Ladda ner den senaste versionen av Scene Builder från Gluons webbplats , välj installationsprogrammet för din plattform eller den körbara burken.

  2. När installationsprogrammet laddats ner, dubbelklickar du för att installera Scene Builder på ditt system. En uppdaterad JRE ingår.

  3. Dubbelklicka på ikonen Scenebyggare för att köra den som fristående program.

  4. IDE-integration

    Medan Scene Builder är ett fristående program, producerar det FXML-filer som är integrerade med ett Java SE-projekt. När du skapar detta projekt på en IDE är det bekvämt att inkludera en länk till Scen Builder-vägen, så FXML-filer kan redigeras.

    • NetBeans: På Windows går du till NetBeans-> Tools-> Options-> Java-> JavaFX. På Mac OS X gå till NetBeans-> Inställningar-> Java-> JavaFX. Ange sökvägen till Scen Builder Home. Scen Builder Path - NetBeans
    • IntelliJ: På Windows går du till IntelliJ-> Inställningar-> Språk och ramverk-> JavaFX. På Mac OS X gå till IntelliJ-> Inställningar-> Språk och ramverk-> JavaFX. Ange sökvägen till Scen Builder Home. Scen Builder Path - IntelliJ
    • Eclipse: I Windows går du till Eclipse-> Window-> Preferences-> JavaFX. Gå till Eclipse-> Inställningar-> JavaFX på Mac OS X. Ange sökvägen till Scen Builder Home. Scen Builder Path - Eclipse

Lite historia

Scene Builder-projektet skapades med JavaFX av Oracle och det är öppen källkod inom OpenJFX-projektet.

Oracle tillhandahöll binärer, fram till Scene Builder v 2.0, inklusive endast JavaFX-funktioner innan Java SE 8u40 släpptes, så nya funktioner som Spinner kontrollerna ingår inte.

Gluon tog över distributionen av binära utgivningar, och en aktuell Scene Builder 8+ kan laddas ner för varje plattform härifrån .

Det inkluderar de senaste ändringarna i JavaFX, och även de senaste förbättringarna och bugfixar.

Projektet med öppen källkod kan hittas här där frågor, funktionsbegäranden och dragförfrågningar kan skapas.

Oracle-arvsbinarierna kan fortfarande laddas ner här .

Handledningar

Tutorials för Scene Builder kan hittas här:

FXML-handledning finns här.

Anpassade kontroller

Gluon har fullständigt dokumenterat den nya funktionen som gör det möjligt att importera tredjepartsburkar med anpassade kontroller med hjälp av Library Manager (tillgängligt sedan Scene Builder 8.2.0).

Bibliotekschef

SO frågor

Tagg relaterat: SceneBuilder

Grundläggande JavaFX-projekt med FXML

Detta är ett grundläggande projekt som använder FXML, skapat med NetBeans (Nytt projekt -> JavaFX -> JavaFX FXML-applikation). Den innehåller bara tre filer:

Huvudsaklig applikationsklass

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-fil

<?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>

Kontrollant

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!");
    }

}

Springa

Att bygga och driva projektet bör visa ett litet fönster med en klickbar knapp:

Kör projektet

Hur det fungerar

Kortfattat, i huvudklassen för applikation, kommer FXMLLoader att ladda basicFXML.fxml från burken / klassvägen, som anges av FXMLLoader.load(getClass().getResource("BasicFXML.fxml")) .

När du laddar basicFXML.fxml lastaren namnet på kontrollerklassen, som anges av fx:controller="org.stackoverflow.BasicFXMLController" i FXML.

Sedan kommer lastaren att skapa en instans av den klassen där den kommer att försöka injicera alla objekt som har en fx:id i FXML och är markerade med @FXML anteckningen i kontrollklassen.

I det här exemplet skapar FXMLLoader etiketten baserad på <Label ... fx:id="label"/> , och den kommer att injicera etikettinstansen i den @FXML private Label label; .

Slutligen, när hela FXML har laddats, kommer FXMLLoader att anropa kontrollerns initialize , och koden som registrerar en åtgärdshanterare med knappen kommer att köras.

redigera

Medan FXML-filen kan redigeras inom IDE, rekommenderas den inte, eftersom IDE ger bara grundläggande syntaxkontroll och autofyllt, men inte visuell vägledning.

Det bästa sättet är att öppna FXML-filen med Scene Builder, där alla ändringar sparas i filen.

Scen Builder kan startas för att öppna filen: Scenbyggare-ikonen

Eller så kan filen öppnas med Scene Builder direkt från IDE:

  • Från NetBeans, på projektfliken, dubbelklicka på filen eller högerklicka och välj Open .
  • Från IntelliJ, på projektfliken, högerklicka på filen och välj Open In Scene Builder .
  • Från Eclipse, på projektfliken, högerklicka på filen och välj Open with Scene Builder .

Redigera fil med Scenebyggare

Om Scen Builder är korrekt installerad och dess sökväg läggs till IDE (se anmärkningar nedan) öppnar den filen:

FXML redigerad med Scene Builder

Ändringar kan göras genom att dra nya behållare eller nya kontroller från de vänstra rutorna, och egenskaper och layoutvärden kan ändras på de högra rutorna.

Observera att en av id-taggen som gör det möjligt att injicera FXML i Java-koden är fx:id . Det kan ställas in i Code rutan:

Ställer in fx: id

Spara filen efter Scenebyggare -> Fil -> Spara. Om ändringar görs när du redigerar filen från IDE, kommer de att uppdateras på Scene Builder när du sparar filen.



Modified text is an extract of the original Stack Overflow Documentation
Licensierat under CC BY-SA 3.0
Inte anslutet till Stack Overflow