我有两个独立的 Controller 和 FXML 文件。在第一个 Controller 中,您控制主窗口,在这里您可以按按钮并打开一个新窗口。
我想阻止用户打开任意数量的窗口。他应该只能打开一扇 window 并再次关闭它,然后才能打开下一扇 window 。
这是当您按下我正在谈论的按钮时执行的代码。它完美地打开了我的窗口,但我仍然可以在后台打开更多窗口,这不是我想要的。
希望您能给我一些帮助。提前致谢
@FXML
private void addSongsToSelectedPlaylist() throws IOException {
if (tempPlaylistName!="Library"){
// WILL LOAD THE STAGE OF THE POPUP WINDOW AND PROVIDE THE CONSTRUCTOR THE PLAYLIST NAME
// AddSongController addSongController = new AddSongController();
// addSongController.enterSelectionMode(tempPlaylistName);
try {
FXMLLoader fxmlLoader = new FXMLLoader(getClass().getResource("addSongToPlaylistPopUp.fxml"));
Parent root1 = (Parent) fxmlLoader.load();
Stage stage = new Stage();
stage.initModality(Modality.WINDOW_MODAL);
stage.getIcons().add(new Image("sample/images/Music-icon.png"));
stage.setResizable(false);
stage.setAlwaysOnTop(true);
stage.setTitle("Add songs to your playlist");
stage.setScene(new Scene(root1));
stage.showAndWait();
} catch (IOException e){
System.out.println(e.getCause());
}
最佳答案
您可以将模式设置为APPLICATION_MODAL
,以防止应用程序在第一个窗口关闭之前打开任何新窗口:
stage.initModality(Modality.APPLICATION_MODAL);
关于JAVAFX:阻止用户打开新窗口,直到他关闭第一个窗口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54225143/