Hallo,
ich verzweifle langsam an meinem Code. Ich arbeite mit Netbeans und Scene Builder und habe mehrere Packages in welchen jeweils ein fxml Dokument und der dazugehörige Controller sind. Außerdem habe ich, in einem anderen Package meine Main-Klasse, in welcher auch die Primary Stage und alles gesetzt werden.
Als erstes lade ich mein Login Fenster, das funktioniert. Dann ersetze ich das Fenster durch mein Hauptfenster - auch das klappt super. Nur dann versuche ich auf die gleiche Art und Weise dieses wieder durch ein weiteres Fenster zu ersetzen und das klappt einfach nicht.
Ich habe jeweils in meinen Controller-Klassen immer den Funktionsaufruf der Methode, die das Fenster wechseln soll:
(Hier klappt es: )
(Hier klappt es nicht: )
Die Funktionen in meiner Main-Klasse sind folgende:
und meine replaceSceneContent-Funktion die in den beiden Methoden aufgerufen wird ist folgende:
Ich habe gestern wirklich schon viele andere Code-Fragmente bei Google Zusammengesucht und Versucht aber irgendwie geht einfach kein neues Fenster mehr auf und ich verstehe nicht warum.... Was habe ich vergessen :bahnhof: ? Es wäre wirklich total super, wenn mir hier jemand einen Tipp :idea: geben könnte was fehlen könnte...
ich verzweifle langsam an meinem Code. Ich arbeite mit Netbeans und Scene Builder und habe mehrere Packages in welchen jeweils ein fxml Dokument und der dazugehörige Controller sind. Außerdem habe ich, in einem anderen Package meine Main-Klasse, in welcher auch die Primary Stage und alles gesetzt werden.
Als erstes lade ich mein Login Fenster, das funktioniert. Dann ersetze ich das Fenster durch mein Hauptfenster - auch das klappt super. Nur dann versuche ich auf die gleiche Art und Weise dieses wieder durch ein weiteres Fenster zu ersetzen und das klappt einfach nicht.
Ich habe jeweils in meinen Controller-Klassen immer den Funktionsaufruf der Methode, die das Fenster wechseln soll:
(Hier klappt es: )
Java:
@FXML
private void processOracleLogin(ActionEvent event) {
// Try to login...
if (loginService.oracleUserLogin()) {
application.gotoMainMenu();
} else {
statusMessage.setText("Oracle Login failed, please retry!");
}
(Hier klappt es nicht: )
Java:
@FXML
private void openSearchKeyword(ActionEvent event) {
application.openSearchKeyword();
}
Die Funktionen in meiner Main-Klasse sind folgende:
Java:
public void gotoMainMenu() {
try {
stage.setResizable(true);
stage.setMinWidth(450);
stage.setMinHeight(400 + 25);
MainMenuController mainMenuController = (MainMenuController) replaceSceneContent("mainmenu/mainMenu.fxml");
mainMenuController.setApp(this);
} catch (Exception ex) {
Logger.getLogger(Main.class.getName()).log(Level.SEVERE, "Error loading mainmenu-fxml-file and controller" + ex.getMessage(), ex);
}
}
/**
* opens searchKeyword.fxml in a new Window
*/
public void openSearchKeyword() {
Parent root;
try {
stage.setResizable(true);
SearchKeywordController searchKeywordController = (SearchKeywordController) replaceSceneContent("searchKeyword/searchKeyword.fxml");
searchKeywordController.setApp(this);
} catch (Exception ex) {
Logger.getLogger(Main.class.getName()).log(Level.SEVERE, "Error loading searchKeyword-fxml-file and controller" + ex.getMessage(), ex);
}
}
und meine replaceSceneContent-Funktion die in den beiden Methoden aufgerufen wird ist folgende:
Java:
private Initializable replaceSceneContent(String fxml) throws Exception {
FXMLLoader loader = new FXMLLoader();
InputStream in = Main.class.getResourceAsStream(fxml);
loader.setBuilderFactory(new JavaFXBuilderFactory());
loader.setLocation(Main.class.getResource(fxml));
AnchorPane page = new AnchorPane();
try {
page = (AnchorPane) loader.load(in);
} finally {
in.close();
}
Scene scene = new Scene(page);
stage.setScene(scene);
stage.sizeToScene();
return (Initializable) loader.getController();
}
Ich habe gestern wirklich schon viele andere Code-Fragmente bei Google Zusammengesucht und Versucht aber irgendwie geht einfach kein neues Fenster mehr auf und ich verstehe nicht warum.... Was habe ich vergessen :bahnhof: ? Es wäre wirklich total super, wenn mir hier jemand einen Tipp :idea: geben könnte was fehlen könnte...