我使用WindowEvent打开目录,以便选择要保存的文件的文件夹。当我关闭窗口,因此执行WindowEvent时,目录打开,我选择了一个文件夹。然而,目录第二次打开,我发现很难理解为什么。此外,我认为我已经正确编写了代码来填充创建的文本文件,但是当我在执行后查看文件夹中的文本文件Titles.txt时它是空的。
@Override
public void start(Stage primaryStage) throws Exception {
LibraryGUI gui = new LibraryGUI();
primaryStage.setTitle("Personal Lending Library");
items.getSelectionModel().setSelectionMode(SelectionMode.SINGLE);
Scene scene = new Scene(gui.layout(), 325, 340);
primaryStage.setScene(scene);
primaryStage.show();
primaryStage.setOnCloseRequest(new EventHandler<WindowEvent>() {
@Override
public void handle(WindowEvent event) {
try {
DirectoryChooser chooser = new DirectoryChooser();
chooser.setTitle("Select Folder");
File dir = chooser.showDialog(null);
if (dir.exists()) {
File file1 = new File(dir.getAbsolutePath() + "\\Titles.txt");
FileWriter fw1 = new FileWriter(file1);
BufferedWriter buffW1 = new BufferedWriter(fw1);
for (int i = 0; i < titles.size(); i++) {
buffW1.write(titles.get(i));
buffW1.newLine();
}
fw1.close();
buffW1.close();
} else {
}
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
我期望发生的是目录窗口打开一次,然后可以选择一个文件夹,然后由ArrayList填充创建的文件并保存到所选文件夹。任何帮助/提示都会有很长的路要走。感谢。
答案 0 :(得分:0)
我通过使用 Parent Stage 而不是使用解决了这个问题 此方法中的 showDialog(stage) 为 null,这样可以防止 DirectoryChooser 重复打开。
Flask login