我在frame1中有两个单选按钮。在单击启用单选按钮时,它将弹出另一个帧,称为frame2。我要在打开frame2的同时不要关闭frame1。但是单击X时它关闭。我使用了“ frame1.setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);”。仍然关闭。
enable.addItemListener(new ItemListener()
{
@Override
public void itemStateChanged(ItemEvent e)
{
// TODO Auto-generated method stub
frame2.setVisible(true);
frame1.setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);
}
最佳答案
在这里看看:
How can a Swing WindowListener veto JFrame closing
您需要做的是,在frame1和frame2中,需要设置setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE)。然后在下面的代码中:
frame1.addWindowListener(new WindowAdapter() {
@Override
public void windowClosing(WindowEvent e) {
//check is frame 2 is open.. if it is then return without doing anything, else
// frame1.dispose();
}
});