我想同时显示三个JFrame
个对象。
当我从上角关闭其中一个时,其他框架应该仍然可见,但它们不是!
我搜索了它,我得知问题与这些有关:
setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
我该怎么做?
答案 0 :(得分:2)
您是否正在延长JFrame
?不。
此外,当您继承JFrame
时,将为每个人定义CLOSE操作
您创建的窗口,因此会导致窗口终止。
我对以下代码没有任何问题:
JFrame j1=new JFrame();
JFrame j2=new JFrame();
JFrame j3=new JFrame();
j1.setVisible(true);
j2.setVisible(true);
j3.setVisible(true);
j1.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
j2.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
j3.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
修改强>
“我应该在哪里输入”
哪里适合你。我能想到什么(从你的结束问题)你的结构如下:
public class FooClass extends JFrame {
FooClass()
{
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
public static void main(String args[]) {
new FooClass().setVisible(true);
new FooClass().setVisible(true);
new FooClass().setVisible(true);
}
}
请勿强制您的类扩展JFrame
,而是创建如上所示的对象
并使用'。'运算符以执行函数JSomeObject.SetThis...();
编辑2:
或者看看setDefaultCloseOperation(JFrame.HIDE_ON_CLOSE)
是否可以帮助您。
OR
您可以添加一个窗口侦听器,并在setVisible(false)
上调用JFrame
:
addWindowListener(new WindowAdapter() {
@Override
public void windowClosing(WindowEvent evt) {
setVisible(false);
}
});