java Swing关闭子窗口

点击按钮跳出一个新窗口 如何关闭新窗口时不关闭别的窗口

public static void main(String[] args) throws Exception {
JFrame frame = new JFrame("swing test");
frame.setSize(300, 200);
frame.setLayout(null);
JButton btnNewFrame = new JButton("新窗口");
btnNewFrame.setBounds(30, 30, 80, 40);
frame.getContentPane().add(btnNewFrame);
frame.setVisible(true);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//关闭时,直接退出
btnNewFrame.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
// TODO 自动生成
final JFrame frame = new JFrame("new frame");
frame.setSize(200, 180);
frame.getContentPane().add(new JLabel("this is a new frame"));
frame.setVisible(true);
frame.addWindowListener(new WindowAdapter() {
@Override
public void windowClosed(WindowEvent e) {
// TODO 自动生成
frame.dispose();//dispose会隐藏窗体并释放窗体所占用的部分资源
}
});
}
});
}
温馨提示:内容为网友见解,仅供参考
第1个回答  2014-02-24
我明白你的意思了,很简单。
新窗口(后弹出来的串口)里面的
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//关闭时,直接退出

这句话删除掉就好了。这个所谓的直接退出,是整个程序都退出了。
第2个回答  2013-01-30
public static void main(String[] args) throws Exception {
JFrame frame = new JFrame("swing test");
frame.setSize(300, 200);
frame.setLayout(null);
JButton btnNewFrame = new JButton("新窗口");
btnNewFrame.setBounds(30, 30, 80, 40);
frame.getContentPane().add(btnNewFrame);
frame.setVisible(true);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//关闭时,直接退出
btnNewFrame.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
// TODO 自动生成
final JFrame frame = new JFrame("new frame");
frame.setSize(200, 180);
frame.getContentPane().add(new JLabel("this is a new frame"));
frame.setVisible(true);
frame.addWindowListener(new WindowAdapter() {
@Override
public void windowClosed(WindowEvent e) {
// TODO 自动生成
frame.dispose();//dispose会隐藏窗体并释放窗体所占用的部分资源
}
});
}
});
}追问

我不是要退出程序 我是两个jFrame 有一个上面点击按钮后显示另一个JFrame同时那个也没有关闭 这个后显示的点关闭后我不希望按钮这个JFrame也关闭

追答

大哥,你没看到【frame.dispose();//dispose会隐藏窗体并释放窗体所占用的部分资源】这句吗。
public void windowClosed(WindowEvent e) {
// TODO 自动生成
frame.dispose();//dispose会隐藏窗体并释放窗体所占用的部分资源
}

追问

我用了呀 不行呀 两个窗口都给我关了呀

追答

你要不把你完整的代码发给我,我帮你看看。472027723@qq.com。

追问

我是用netbeans写的 项目里面还包括了JavaFX 发过去你那能运行吗 如果可以我就给你发过去

追答

我不需要整个项目,你直接给你那两个jFrame相关的代码就行了。看代码应该就能发现问题了

追问

已经给你发过去了 请你帮忙看看 谢谢

本回答被网友采纳
第3个回答  2013-01-31
这个方法 JFrame.dispose();追问

我是那样写的呀 可是不行呀

第4个回答  2013-01-30
参考我两年前的回答 http://zhidao.baidu.com/question/254502808?&oldq=1追问

不行 照样把两个窗口关闭了

相似回答