java程序创建两个swing窗体,把其中一个关了,另一个也会关闭,为什么?如何避免这种情况?

publicclassaextendsJFrame{JPanelp;publicstaticvoidmain(String[]args){EventQueue.invok... public class a extends JFrame {
JPanel p;
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
a frame = new a();
frame.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
public a() {
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setBounds(100, 100, 450, 300);
contentPane = new JPanel();
setContentPane(p);
b.aa();
}
}

public class b extends JFrame {
JPanel p;
public static void aa() {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
b frame = new b();
frame.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
public b() {
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setBounds(100, 100, 200, 250);
contentPane = new JPanel();
setContentPane(p);
}
}
展开
 我来答
百度网友832bd6a
推荐于2017-11-24 · TA获得超过1180个赞
知道小有建树答主
回答量:422
采纳率:0%
帮助的人:406万
展开全部
简单。 你设置

jframe.setDefaultClosedOperation(JFrame.DO_NOTHING_ON_CLOSE); //不进行任何操作
或者。
JFrame.DISPOSE_ON_CLOSE 、、
调用任意已注册 WindowListener 的对象后自动隐藏并释放该窗体。

只有设置为JFrame.EXIT_ON_CLOSE 的时候才会 使用 System exit 方法退出应用程序
小女辍学卖豆芽
2012-02-09 · TA获得超过197个赞
知道答主
回答量:125
采纳率:0%
帮助的人:159万
展开全部
上代码
补充:
把第一个窗口类改为
public a() {
setTitle("I'm a");
setDefaultCloseOperation(DISPOSE_ON_CLOSE); //加入这一行
setBounds(100, 100, 450, 300);
然后再把第二个窗口类改为
b frame = new b();
frame.setTitle("I'm b");
frame.setDefaultCloseOperation(DISPOSE_ON_CLOSE); //加入这一行
frame.setVisible(true);
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
txtdown99
2012-02-09 · TA获得超过1223个赞
知道小有建树答主
回答量:421
采纳率:100%
帮助的人:153万
展开全部
你两个窗体用的是不是同一个JFrame啊
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式