Java:如何处理来自不同JFrame的Dispose ActionEvent?

3

我希望一个JFrame拥有这样的方法:

private void someEvent(java.awt.event.ActionEvent evt){

    //initialize another JFrame
    //set the new JFrame to be visible
    //set this JFrame to be disabled

}

这是可能的,但我也希望当新创建的JFrame被销毁时,主JFrame执行一些操作。然而,我不想将主JFrame传递给新的JFrame。这种情况可行吗?

2个回答

4
不要创建并显示另一个JFrame,而是应该使用JDialog来作为第二个窗口,如果想要第一个窗口在第二个窗口处理完毕之前被冻结,则应该使用模态对话框,否则使用非模态对话框。如果选择模态对话框,则第一个窗口的代码将在JDialog被关闭后继续执行,并且代码流将从对话框上的setVisible(true)调用之后开始。如果选择非模态对话框,则可能需要向对话框添加WindowListener。
例如,请查看我的代码这里这里这里

4
相反,使用CardLayout来在两个所需的内容面板之间切换。这里有一个例子

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接