Guten Morgen allerseits,
Ich arbeite derzeit an einem FXML Projekt, in welchem an verschiedenen Stellen Pop-Up Fenster angezeigt werden sollen. Das Fenster ist über FXML erstellt und befindet sich in einer separaten Klasse. Es wird über einen ActionListener aufgerufen. Nun würde ich gerne das selbe Pop-Up Fenster an anderer Stelle im Programm ebenfalls einbringen. Allerdings verweist die setOnAction Methode, welche über einen Button bedient wird, nun mal auf die bereits bestehende Funktion und kann somit keine andere Methode anspielen.
Ich würde mich über Ratschläge, wie man diese Situation für "gewöhnlich" angeht sehr freuen.
Anbei relevante Codeausschnitte.
Ich arbeite derzeit an einem FXML Projekt, in welchem an verschiedenen Stellen Pop-Up Fenster angezeigt werden sollen. Das Fenster ist über FXML erstellt und befindet sich in einer separaten Klasse. Es wird über einen ActionListener aufgerufen. Nun würde ich gerne das selbe Pop-Up Fenster an anderer Stelle im Programm ebenfalls einbringen. Allerdings verweist die setOnAction Methode, welche über einen Button bedient wird, nun mal auf die bereits bestehende Funktion und kann somit keine andere Methode anspielen.
Ich würde mich über Ratschläge, wie man diese Situation für "gewöhnlich" angeht sehr freuen.
Anbei relevante Codeausschnitte.
Java:
// FXMLOptionsController, welche auf FXMLDeleteController zugreift
private void deleteBtAction () throws IOException, SQLException {
FXMLLoader loader = new FXMLLoader(getClass().getResource("DeleteConfirm.fxml"));
root = loader.load();
FXMLDeleteConfirmController deleteConfirmController = loader.getController();
deleteConfirmController.openDeleteConfirmStage();
}
Java:
// FXMLDeleteController (hier ist das Pop-Up)
public void openDeleteConfirmStage () throws IOException, SQLException {
Stage deleteConfirmStage = new Stage();
Parent root = FXMLLoader.load(getClass().getResource("DeleteConfirm.fxml"));
Scene deleteConfirmScene = new Scene(root, 250, 180);
deleteConfirmStage.setResizable(false);
deleteConfirmStage.setAlwaysOnTop(true);
deleteConfirmScene.getStylesheets().add(getClass().getResource("application.css").toExternalForm());
deleteConfirmStage.setScene(deleteConfirmScene);
deleteConfirmStage.show();
}
// ActionEvent, welches den Button belegt.
public void confirmOderOptionDelition (ActionEvent event) throws IOException, SQLException {
FXMLLoader loader = new FXMLLoader(getClass().getResource("Options.fxml"));
root = loader.load();
FXMLOptionsController optionsController = loader.getController();
optionsController.getListViewItemAndDelete();
stage = (Stage)((Node)event.getSource()).getScene().getWindow();
stage.close();
}