将GUI作为线程启动

时间:2013-04-03 10:59:53

标签: java multithreading swing jbutton event-dispatch-thread

我有一个工作正常的GUI类,但是我在该GUI类中有一个按钮,它应该从另一个类打开一个新的GUI ..

private void jButton1ActionPerformed(java.awt.event.ActionEvent evt){

     GUI2 newGui = new GUI2();
     newGui.setVisible(true);
}

但是,当调用新的GUI类(newGui)时,它只显示为透视窗口。这是因为GUI不能同时运行吗?

我现在正在尝试将新GUI作为一个线程打开,但我不知道该怎么做!

 Thread thread = new Thread();
 thread.sleep(5000);
 thread.newGui.setVisible();

public void run();

这是我的尝试,但不出所料,这不起作用。

任何帮助?

谢谢!

2 个答案:

答案 0 :(得分:3)

 SwingUtilities.invokeLater(new Runnable()
        {
            public void run()
            {
               GUI2 newGui = new GUI2();
               newGui.setVisible(true);
            }
        });

答案 1 :(得分:0)

private void jButton1ActionPerformed(java.awt.event.ActionEvent evt){
    Thread thread = new Thread(){
        public void run(){
            GUI2 newGui = new GUI2();
            newGui.setVisible(true);
        }
    };  
    thread.start();
}