你这个一个线程就可以,我简单弄了一个,这个其实是一次创建了两个窗口,第一个窗口时主窗口,其中的按钮可以控制第二个的显示。点击按钮显示,关闭第二个窗口,第一个仍然存在。不涉及多线程。
public class FrameTest extends Frame{
private Button b;
private Frame frame;
public Swing(){
//this是第一个窗口,frame是第二个
this.setSize(100, 100);
b = new Button("OK");
frame = new Frame();
frame.setSize(100,100);
frame.setLocation(200, 200);
//为第二个窗口添加关闭时间,关闭时隐藏
frame.addWindowListener(new WindowAdapter(){
@Override
public void windowClosing(WindowEvent e) {
frame.setVisible(false);
}
});
//为按钮添加事件,点击显示第二个窗口
b.addActionListener(new ActionListener(){
@Override
public void actionPerformed(ActionEvent e) {
frame.setVisible(true);
}
});
this.add(b);
this.setVisible(true);
}