Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/327.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
仅当子窗口在JavaSwing中关闭时,才需要关闭父窗口_Java_Swing_Frame - Fatal编程技术网

仅当子窗口在JavaSwing中关闭时,才需要关闭父窗口

仅当子窗口在JavaSwing中关闭时,才需要关闭父窗口,java,swing,frame,Java,Swing,Frame,我在frame1中有两个单选按钮。单击enable单选按钮,将弹出另一个名为frame2的帧。我希望,不要在框架2打开时关闭框架1。但当点击X时,它会关闭。我使用了“frame1.setDefaultCloseOperation(JFrame.doo_NOTHING_on_CLOSE);”。但它还是关闭了 enable.addItemListener(new ItemListener() { @Override public void itemStateChanged(ItemEven

我在frame1中有两个单选按钮。单击enable单选按钮,将弹出另一个名为frame2的帧。我希望,不要在框架2打开时关闭框架1。但当点击X时,它会关闭。我使用了“frame1.setDefaultCloseOperation(JFrame.doo_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);
    }

如果只需要使用frame2,可以尝试使用。
谷歌搜索也发现了另一种方法。

有很多方法可以获取活动窗口实例的列表,并验证哪个框架/窗口可见或不可见

  • Window.getOwnedWindows()
  • Window.getWindows()
  • Window.getOwnerlessWindows()文件
  • Frame.getFrames()
  • 请看这里:

    您需要做的是,在frame1和frame2中,您需要设置setDefaultCloseOperation(JFrame.do\u NOTHING\u ON\u 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();
        }
    });
    
    请提供一份说明您所描述问题的报告。