主程序界面b中有一个button,点击它执行一个如下方法。
  JFrame a = new JFrame()
  Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
  a.setLocation( screenSize.width / 3,screenSize.height / 2);
  a.setSize(300, 150);
  a.show()
  mothed();//这是主窗体b中一个比较耗时的方法。比如执行20s.
  a.dispose();执行的问题是:在a.show()之后,执行mothed()方法,这时候a窗体就隐藏在b这个主窗体之后了,也就是当前活动窗体变成b了,有没有什么办法使a一直处理活动状态,直到dispose()后关闭。当然,最重要的是mothed()方法也要执行(这种要求就使用模态的JDialog就不能完成了)。还望各位高手指教。小弟先谢过了。

解决方案 »

  1.   

    package com.jivesoftware;import java.awt.Dimension;import javax.swing.ImageIcon;
    import javax.swing.JFrame;import com.sun.media.sound.Toolkit;public class sdadsa { public static void main(String args[]){
     JFrame a = new JFrame();
     a.setLocation( 500,300);
     a.setSize(300, 150);
     a.setTitle("a");
     a.show();
           Thread t1 = new Thread(){
         public void run(){
         JFrame b = new JFrame();
           b.setSize(300, 150);
           b.setTitle("b");
           b.setFocusableWindowState(false);
           b.show();
           
         }
         };
         t1.start();
         try{
         Thread.sleep(5000);
         }catch(Exception e){
         e.printStackTrace();
         }
         a.dispose();
    }
    }
      

  2.   

    设置焦点就可以了b.setFocusableWindowState(false);,运行一下我给你的代码,