javafx
Kreator scen
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
Pobierz Scene Builder najnowszą wersję ze gluonowych na stronie , wybierając instalatora dla danej platformy lub wykonywalnego słoika.
Po pobraniu instalatora kliknij dwukrotnie, aby zainstalować program Scene Builder w systemie. Zawiera zaktualizowane środowisko JRE.
Kliknij dwukrotnie ikonę programu Scene Builder, aby uruchomić go jako samodzielną aplikację.
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.
- 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.
- 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.
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:
- Oracle Scene Builder 2.0 poradnik
Samouczki FXML można znaleźć tutaj.
- Samouczek Oracle FXML
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).
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:
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:
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
.
Jeśli program Builder scen jest poprawnie zainstalowany, a jego ścieżka dodana do IDE (patrz uwagi poniżej), otworzy plik:
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
:
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.