我是个菜鸟,请教一下高人:
private void mouseClickedOnJButton1(java.awt.event.MouseEvent evt) {
  java.awt.EventQueue.invokeLater(new Runnable() 
    {
         public void run() 
         {
            mainframe.setVisible(true);                
          }
     });

以上代码是实现让mainframe这个窗口显示的功能,我想知道有没有更简单一点的方法来实现点击一个按钮,跳出一个窗口这样的功能非常感谢!初学JAVA,希望各位指点!

解决方案 »

  1.   

    这样也行,建议不要单纯为了图个简单,搞清理由才是关键的。private void mouseClickedOnJButton1(java.awt.event.MouseEvent evt) {
        mainframe.setVisible(true);
    }
      

  2.   

    我就是弄不明白:
    java.awt.EventQueue.invokeLater(new Runnable() 
        {
             public void run() 
             {
                mainframe.setVisible(true);                
              }
         });
    我也觉得用mainframe.setVisible(true)就可以了,楼上的高人,能否帮忙解释一下以上函数的功能呢?非常感谢!
      

  3.   

    invokeLater():要求在事件派发线程中执行某些代码。这个方法会立即返回,不会等待代码执行完毕 
    在java的主线程(Main Thread)中是使用事务的方式来处理事件的,主线程中有一个事件队列,当你所要做的动作将被放到主线程中处理而又不需要马上处理(或不想中断目前正在执行的事务),则可以使用InvokeLater方法将该事务放到事件队列的最后。让主线程自行执行。 
    使用InvokeLater不知道在什么时候会执行该事务,但好处是不会和其它事务起冲突。Swing中的重绘也是用InvokeLater来实现的