我在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();
    }
});

09-27 00:07