gpt4 book ai didi

Java Swing 使用 setDefaultCloseOperation 关闭窗口添加窗口监听器

转载 作者:行者123 更新时间:2023-12-01 21:28:27 27 4
gpt4 key购买 nike

在 java swing 应用程序中,以下操作之间有什么区别?我什么时候更愿意使用其中一种而不是另一种?

我在互联网上散布的不同示例中看到过这两种情况:

// Have the window exit on close
mainFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

- 或 -

// Set up a window listener to exit on close
mainFrame.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent windowEvent) {
System.exit(0);
}
});

第二种方法似乎需要更多代码,所以我想知道为什么我看到它如此广泛使用。这种方法比第一种方法有什么优点吗?

最佳答案

实际上它们是相同的,来自 JFrame 的代码:

   protected void processWindowEvent(WindowEvent e) {
super.processWindowEvent(e);

if (e.getID() == WindowEvent.WINDOW_CLOSING) {
switch(defaultCloseOperation) {
case HIDE_ON_CLOSE:
setVisible(false);
break;
case DISPOSE_ON_CLOSE:
dispose();
break;
case DO_NOTHING_ON_CLOSE:
default:
break;
case EXIT_ON_CLOSE:
// This needs to match the checkExit call in
// setDefaultCloseOperation
System.exit(0);
break;
}
}
}

但是,调用 setDefaultCloseOperation 更好,因为它利用了 JFrame 当前现有的代码(可重用性)。

关于Java Swing 使用 setDefaultCloseOperation 关闭窗口添加窗口监听器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37731087/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com