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);
}
} 展开
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);
}
} 展开
3个回答
展开全部
上代码
补充:
把第一个窗口类改为
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);
补充:
把第一个窗口类改为
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);
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你两个窗体用的是不是同一个JFrame啊
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询