Szukaj…


Wprowadzenie

JavaFX Scene Builder to wizualne narzędzie do układania, które pozwala użytkownikom szybko projektować interfejsy użytkownika aplikacji JavaFX, bez kodowania. Służy do generowania plików FXML.

Uwagi

JavaFX Scene Builder to wizualne narzędzie do układania, które pozwala użytkownikom szybko projektować interfejsy użytkownika aplikacji JavaFX, bez kodowania. Użytkownicy mogą przeciągać i upuszczać komponenty interfejsu użytkownika do obszaru roboczego, modyfikować ich właściwości, stosować arkusze stylów, a kod FXML dla tworzonego układu jest automatycznie generowany w tle. Wynikiem jest plik FXML, który można następnie połączyć z projektem Java przez powiązanie interfejsu użytkownika z logiką aplikacji.

Z perspektywy kontrolera widoku modelu (MVC):

  • Plik FXML zawierający opis interfejsu użytkownika jest widokiem.
  • Kontroler jest klasą Java, opcjonalnie implementującą klasę Initializable, która jest zadeklarowana jako kontroler dla pliku FXML.
  • Model składa się z obiektów domeny zdefiniowanych po stronie Java, które można połączyć z widokiem za pośrednictwem kontrolera.

Instalacja programu budującego sceny

  1. Pobierz Scene Builder najnowszą wersję ze gluonowych na stronie , wybierając instalatora dla danej platformy lub wykonywalnego słoika.

  2. Po pobraniu instalatora kliknij dwukrotnie, aby zainstalować program Scene Builder w systemie. Zawiera zaktualizowane środowisko JRE.

  3. Kliknij dwukrotnie ikonę programu Scene Builder, aby uruchomić go jako samodzielną aplikację.

  4. Integracja z IDE

    Chociaż Scene Builder jest samodzielną aplikacją, tworzy pliki FXML zintegrowane z projektem Java SE. Podczas tworzenia tego projektu w środowisku IDE wygodnie jest dołączyć link do ścieżki Konstruktora scen, aby można było edytować pliki FXML.

    • NetBeans: W systemie Windows przejdź do NetBeans-> Narzędzia-> Opcje-> Java-> JavaFX. W Mac OS X przejdź do NetBeans-> Preferencje-> Java-> JavaFX. Podaj ścieżkę do programu Home Builder Home. Ścieżka do konstruktora scen - NetBeans
    • IntelliJ: W systemie Windows przejdź do IntelliJ-> Ustawienia-> Języki i struktury-> JavaFX. W Mac OS X przejdź do IntelliJ-> Preferencje-> Języki i struktury-> JavaFX. Podaj ścieżkę do Home Builder Home. Ścieżka do konstruktora scen - IntelliJ
    • Eclipse: W systemie Windows przejdź do Eclipse-> Okno-> Preferencje-> JavaFX. W Mac OS X przejdź do Eclipse-> Preferencje-> JavaFX. Podaj ścieżkę do programu Home Builder Home. Ścieżka do konstruktora scen - Zaćmienie

Trochę historii

Projekt Scene Builder został stworzony przy użyciu JavaFX przez Oracle i jest open source w ramach projektu OpenJFX.

Oracle dostarczało pliki binarne, aż do programu Scene Builder v 2.0, w tym tylko funkcje JavaFX przed wydaniem Java SE 8u40, więc nowe funkcje, takie jak kontrolki Spinner nie są uwzględniane.

Gluon przejął dystrybucję wydań binarnych, a stąd można pobrać aktualną wersję programu Build Builder 8+ na każdą platformę.

Zawiera najnowsze zmiany w JavaFX, a także najnowsze ulepszenia i poprawki błędów.

Projekt open source można znaleźć tutaj, w którym można tworzyć problemy, żądania funkcji i żądania ściągania.

Starsze pliki binarne Oracle nadal można pobrać stąd .

Poradniki

Samouczki Konstruktora scen można znaleźć tutaj:

Samouczki FXML można znaleźć tutaj.

Niestandardowe elementy sterujące

Gluon w pełni udokumentował nową funkcję, która umożliwia importowanie słoików stron trzecich za pomocą niestandardowych elementów sterujących, za pomocą Menedżera bibliotek (dostępnego od programu Scene Builder 8.2.0).

Kierownik biblioteki

SO Pytania

Powiązane z tagiem : SceneBuilder

Podstawowy projekt JavaFX z wykorzystaniem FXML

Jest to podstawowy projekt wykorzystujący FXML, stworzony przy pomocy NetBeans (Nowy projekt -> JavaFX -> Aplikacja JavaFX FXML). Zawiera tylko trzy pliki:

Główna klasa aplikacji

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

Plik FXML

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

Kontroler

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

}

Biegać

Budowanie i uruchamianie projektu powinno wyświetlać małe okno z klikalnym przyciskiem:

Uruchom projekt

Jak to działa

W skrócie, w głównej klasie aplikacji, FXMLLoader załaduje basicFXML.fxml ze ścieżki jar / classpath, jak określono w FXMLLoader.load(getClass().getResource("BasicFXML.fxml")) .

Podczas ładowania basicFXML.fxml ładujący znajdzie nazwę klasy kontrolera, określoną przez fx:controller="org.stackoverflow.BasicFXMLController" w FXML.

Następnie moduł ładujący utworzy instancję tej klasy, w której spróbuje wstrzyknąć wszystkie obiekty, które mają fx:id w FXML i są oznaczone adnotacją @FXML w klasie kontrolera.

W tym przykładzie FXMLLoader utworzy etykietę na podstawie <Label ... fx:id="label"/> i wstrzyknie instancję etykiety do @FXML private Label label; .

Na koniec, gdy załadowany zostanie cały FXML, FXMLLoader wywoła metodę initialize kontrolera i zostanie wykonany kod rejestrujący procedurę obsługi za pomocą przycisku.

Redagowanie

Chociaż plik FXML można edytować w środowisku IDE, nie jest to zalecane, ponieważ IDE zapewnia jedynie podstawowe sprawdzanie składni i automatyczne uzupełnianie, ale nie zawiera wskazówek wizualnych.

Najlepszym rozwiązaniem jest otwarcie pliku FXML za pomocą programu Scene Builder, w którym wszystkie zmiany zostaną zapisane w pliku.

Program Scene Builder można uruchomić, aby otworzyć plik: Ikona Konstruktora scen

Lub plik można otworzyć za pomocą Konstruktora scen bezpośrednio z IDE:

  • W NetBeans, na karcie projektu kliknij dwukrotnie plik lub kliknij prawym przyciskiem myszy i wybierz Open .
  • W IntelliJ na karcie projektu kliknij plik prawym przyciskiem myszy i wybierz polecenie Open In Scene Builder .
  • W Eclipse, na karcie projektu kliknij plik prawym przyciskiem myszy i wybierz Open with Scene Builder .

Edytuj plik za pomocą programu Scene Builder

Jeśli program Builder scen jest poprawnie zainstalowany, a jego ścieżka dodana do IDE (patrz uwagi poniżej), otworzy plik:

Edytowano FXML za pomocą Konstruktora scen

Zmiany można wprowadzać, przeciągając nowe kontenery lub nowe elementy sterujące z lewego panelu, a właściwości i wartości układu można zmieniać w prawym panelu.

Zauważ, że jednym ze znaczników id, który pozwala wstrzyknąć FXML do kodu Java, jest fx:id . Można to ustawić w okienku Code :

Ustawienie fx: id

Po zastosowaniu zmian zapisz plik (Kreator scen -> Plik -> Zapisz). Jeśli zostaną wprowadzone zmiany podczas edycji pliku z IDE, podczas zapisywania pliku zostaną one zaktualizowane w programie Builder scen.



Modified text is an extract of the original Stack Overflow Documentation
Licencjonowany na podstawie CC BY-SA 3.0
Nie związany z Stack Overflow