我有一个 AWT 模态对话框
public class d extends java.awt.Dialog {...
在对话框框架上,我使用 netbeans gui 设计器放置了对话框,然后是面板,然后是按钮。 我试图通过按下按钮关闭对话框。 我对 System.exit(0) 不感兴趣。
创建的netbeans生成器
private void jButtonCloseActionPerformed(java.awt.event.ActionEvent evt){
我想我应该在该函数中调用 dispose,但是当调用它时会释放对话框,但对话框线程永远不会结束。
当窗口默认关闭对话框关闭按钮时,我有以下处理程序工作
dialog.addWindowListener(new java.awt.event.WindowAdapter() {
@Override
public void windowClosing(java.awt.event.WindowEvent e) {
Window window = SwingUtilities.getWindowAncestor(e.getComponent());
window.dispose();
}
});
上面的工作正常,即线程结束。
我可以在 jButtonCloseActionPerformed 中使用相同的方法,但我不知道如何获取窗口对象。
我怎样才能做到这一点? 任何其他好的解决方案也非常受欢迎。
非常感谢您的帮助。
最佳答案
我认为最好的答案(简而言之)是使用下面的代码
Window window = SwingUtilities.getWindowAncestor(this);
window.dispose();
这在这里很重要。 我试图通过从事件等中获取父对象以某种方式获取窗口对象。在 WindowClosing 的情况下,我确实可以通过这种方式获取窗口对象引用,但在按钮的情况下它不起作用......然后我意识到我可以只需引用this。 Internet 中的大多数示例调用 System.Exit(0),但恕我直言,调用 System.Exit(0) 在示例的情况下ONLY 可能没问题,而不是在实际应用中。
关于JAVA AWT 如何通过按下按钮关闭对话框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11236133/