JFileChooser&&System中未调用java windowClosing。退出功能不正常?
背景
所以我一直在努力改进我的代码风格,并在功能上做得更好。我每天编写软件并不是为了我的工作(网页设计),而是为了加快我的工作,使它们自动化,节省时间(这种方法被证明是无价的,并使我成为一名超级明星)
发行
在我最近的一个项目中,我尝试以以下方式使用JFileChooser:
List<String> lines;
do {
lines = new ArrayList<>();
try {
lines = jFC.showOpenDialog(new JFrame() {
{
// originally setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
System.exit(0);
}
});
}
}) == JFileChooser.APPROVE_OPTION
? Files.readAllLines(jFC.getSelectedFile().toPath())
: null;
} catch (Exception e) {
e.printStackTrace();
System.err.println("Error selecting File.");
}
System.out.println("Here we go");
} while (lines == null || lines.isEmpty());
然而,我的原始实现和修改后的实现实际上都不起作用,我使用print语句对其进行了测试(从未调用重新实现的版本)然后我试着做了以下几点:
JFrame test = new JFrame();
test.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
lines = jFC.showOpenDialog(test) == JFileChooser.APPROVE_OPTION
? Files.readAllLines(jFC.getSelectedFile().toPath())
: null;
这产生了同样的结果。我一直在寻找复制品,但找不到能再现我真实情况的东西。本质上,我希望我的程序在JFileChooser被取消时完全终止,但我不愿意更改我的三元语句,因为它并没有修复我的预期行为,而是提出了一种解决方法。我的直觉告诉我这是一个范围问题,但对于windowClosing不被调用,这给我提出了几个问题
tl;博士
系统。JFileChooser的JFrame上的退出(0)不工作,不会更改流控制,所以不必费心询问
共 (0) 个答案