JAVA AWT如何通过按下按钮关闭对话框

时间:2012-06-27 23:23:24

标签: java swing awt modal-dialog windowlistener

我有一个AWT模态对话框

public class d extends java.awt.Dialog {...

在对话框上,使用netbeans gui designer我按对话框然后按面板然后按钮。 我试图通过按下按钮关闭对话框。 我对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中使用相同的方法,但我不知道如何获取窗口对象。

我怎样才能实现这一目标? 任何其他好的解决方案也很受欢迎。

非常感谢你的帮助。

1 个答案:

答案 0 :(得分:0)

我认为最好的答案(简而言之)就是使用以下代码

Window window = SwingUtilities.getWindowAncestor(this);
window.dispose();

这个在这里很重要。 我试图通过从事件等获取父对象来获取窗口对象。在WindowClosing的情况下,我确实可以以这种方式获得窗口对象引用,但是如果有按钮它不起作用...然后我意识到我可以只需参考 this 即可。 互联网上的大多数示例都调用System.Exit(0),但是在示例 ONLY 的情况下,IMHO调用System.Exit(0)可能没问题,而不是真正的应用程序。