主题:[讨论]java多窗口编程的问题
xqlneu
[专家分:0] 发布于 2008-06-04 21:43:00
我在多窗口编程时,当由一个窗口弹出另一个后,在点击关闭按钮时调用setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE)
这样会把两个窗口都关掉,我想只关掉一个,即,按哪个关闭按钮就关掉相应的Frame,
请问,应该怎么做呢?
回复列表 (共7个回复)
沙发
happyboy2007 [专家分:3900] 发布于 2008-06-05 08:55:00
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JFrame;
import javax.swing.JButton;
public class FrameDemo extends JFrame implements ActionListener
{
private JButton but = new JButton("OPEN");
public FrameDemo()
{
this.getContentPane().add(but,"North");
but.addActionListener(this);
this.setDefaultCloseOperation(JFrame.HIDE_ON_CLOSE);
this.setSize(400,300);
this.setLocationRelativeTo(null);
this.setVisible(true);
}
public static void main(String[] args)
{
new FrameDemo();
}
public void actionPerformed(ActionEvent e)
{
new AnotherFrame().setVisible(true);
}
}
class AnotherFrame extends JFrame
{
public AnotherFrame()
{
this.setSize(300,200);
this.setDefaultCloseOperation(JFrame.HIDE_ON_CLOSE);
this.setLocationRelativeTo(null);
}
}
板凳
Finder [专家分:1460] 发布于 2008-06-05 16:36:00
什么多窗口编程?是多个Frame还是用的JInternalFrame?
3 楼
ty_typhoon [专家分:0] 发布于 2008-06-12 10:13:00
楼主代码没问题,我用netbean 测试没有你说的问题。
不过关闭窗口后不能自动结束线程。
如果把第一个界面的HIDE_ON_CLOSE 改成 EXIT_ON_CLOSE 可以解决。
但是如果关闭主窗口,因为关闭了线程所以两个窗口同时关闭。
如果只关闭新窗口,则主窗口不会关闭。
4 楼
ty_typhoon [专家分:0] 发布于 2008-06-12 10:43:00
搂住帖子没有问题,我用NetBean测试没发生同时关闭的情况,
问题是关闭窗口之后,线程不能自动关闭。
把主窗口的关闭改成 JFrame.EXIT_ON_CLOSE
新窗口不变,这样关闭新窗口主窗口不关闭,如果关闭主窗口则新窗口也关闭,线程结束。
5 楼
rtgongchengshi [专家分:90] 发布于 2008-08-14 09:22:00
这个问题我以前也接触过,开始的时候我也找不到问题的原因,后来我进了一个技术交流群,这个群里的人挺多的,在里面可以沟通技术,你可以进去看一下.群号是:六#二#八#七#八#零#四#三。另外,这个群里可以接项目。
6 楼
zhaolong [专家分:300] 发布于 2008-08-15 22:50:00
public void actionPerformed(ActionEvent e)
{
new AnotherFrame().setVisible(true);
}
写这段代码有什么用啊,请问一下一楼的高手?
7 楼
zhaolong [专家分:300] 发布于 2008-08-15 23:52:00
把两个窗口写在两各类中,而且使用嵌套类。即可
我来回复