有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

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) 个答案