我有一个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中使用相同的方法,但我不知道如何获取窗口对象。
我怎样才能实现这一目标? 任何其他好的解决方案也很受欢迎。
非常感谢你的帮助。
答案 0 :(得分:0)
我认为最好的答案(简而言之)就是使用以下代码
Window window = SwingUtilities.getWindowAncestor(this);
window.dispose();
这个在这里很重要。 我试图通过从事件等获取父对象来获取窗口对象。在WindowClosing的情况下,我确实可以以这种方式获得窗口对象引用,但是如果有按钮它不起作用...然后我意识到我可以只需参考 this 即可。 互联网上的大多数示例都调用System.Exit(0),但是在示例 ONLY 的情况下,IMHO调用System.Exit(0)可能没问题,而不是真正的应用程序。