Ich verwende SceneBuilder in Verbindung mit Netbeans JavaFX-Bibliothek für dieses Projekt. Ich benutze Scenebuilder, um die fxml und netbeans für die Controller-Klassen zu erstellen. Ziel ist es, eine ziemlich komplexe App zu erstellen, die bereitgestellt werden soll.Mit einer laufenden JavaFX-Anwendung, öffnen Sie ein neues Fenster mit einer eigenen, separaten Controller-Klasse
Ich kann eine JavaFX-Anwendung starten und die Controller-Klasse gut anschließen. Wenn ich jedoch versuche, ein neues Fenster zu öffnen, kann ich anscheinend keine Controller-Klasse an das neue Fenster binden. Um die Dinge einfach zu halten, möchte ich aufgrund eines komplexen Backends eine separate Controller-Klasse für das neue Fenster haben.
TL; DR - Es wird versucht, ein neues Fenster für die JavaFX-Anwendung mit einer Controller-Klasse zu öffnen. Controller-Klasse ist nicht bindend.
Codebeispiele unten
Modellklasse - Wrapper für die Anwendung startet
public class Model extends Application{
public static void main(String[] args){
Application.launch(Model.class, args);
}
@Override
public void start(Stage stage) throws Exception{
Parent root = FXMLLoader.load(getClass().getResource("Sample.fxml"));
stage.setScene(new Scene(root));
stage.show();
}
}
Sample.fxml - fxml Datei für die Hauptanwendung
Sample.java - erstreckt initialisierbare , ist die Controller-Klasse für Sample.fxml. Im Folgenden finden Sie Codeausschnitt, wo ich versuche, das neue Fenster „ServerConfigChooser
try{
Parent root = FXMLLoader.load(getClass().getResource("ServerConfigChooser.fxml"));
FXMLLoader loader = new FXMLLoader(getClass().getResource("ServerConfigChooser.fxml"));
ServerConfigChooser controller = new ServerConfigChooser();
loader.setController(controller);
loader.setRoot(root);
Stage stage = new Stage();
stage.setScene(new Scene(root));
stage.show();
} catch (IOException ex)
ServerConfigChooser.java Titel zu öffnen - implementiert initialisierbare
Dies ist, wo ich die Probleme habe ich Variablen mit dem gleichen fxid nicht einfach erklären kann. Die Methode initialize() wird nicht ausgelöst, wenn die Klasse aufgerufen wird
Der Grund für den Konstruktor in der ServerConfigChooser-Klasse ist, dass ich die initialize() -Methode nicht automatisch auslösen konnte feuern Sie das manuell innerhalb des Konstruktors
Alle Lösungen sind willkommen!
JavaFX für jetzt zu tun hat. Hoffentlich werden die Speicherlecks in naher Zukunft behoben werden – Kyte
Ein Wort zu den Weisen. Das Senden von Fragen an Sonntagen ist für SO die am wenigsten aktive Zeit der Woche. Warte auf Montag für bessere Ergebnisse – jth41
Ich stimme mit jth41 überein – nate