我对一个JButton进行了监听,在actionPerformed方法里做一件事,这件要执行好久大约20秒,问题来了在这20秒内我的主界面就失灵了,好像死机了一样,关也关不了(因为还在运行actionPerformed方法中的程序)。我想在这20秒内能干其它事,请问怎么办,要是说的不清楚可以去试下下面这个程序:
import java.awt.event.*;
import javax.swing.*;
public class TextText implements ActionListener {
  public TextText(){
  JFrame jf=new JFrame();
  jf.getContentPane();
  jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  JButton bt=new JButton("试试");
  jf.add(bt);
  bt.addActionListener(this);
  jf.setSize(200,200);
  jf.setVisible(true);
  }
public void actionPerformed(ActionEvent arg0) {
while(true){
System.out.println("死了");
}
 }
public static void main(String arg[]){
new TextText();
  }
}

解决方案 »

  1.   

    试了下,还好啊!简单的程序用记事本好了,想强制终止就按Ctrl+C,当然先要点下命令行窗口
      

  2.   

    用一个主线程, actionPerformed中再开个线程
      

  3.   

    我也想到再开线程,不过不怎么好开,再开线程的话,在actionPerformed中再开个线程,而actionPerformed是主线程中的,那还是一样的,干不了其它事。
    有那个高手看懂题目的给我改一下哟,只要改成能够点Button后能够点关闭按钮关闭主窗口就算是成功了。(顺便说下一楼理解错了,再说清楚点就是,如果我再加一个JButton(bt2),也监听,也写好监听事件,当我点第一个按钮后运行while(true),就不能点第二个bt2了(因为第一个事件还没完成)).
      

  4.   

    这个问题已经解决了,我还有一个问题,谁给我解决了一样给分的:JAVA里面有没有一二句代码就能得到指定目录下的所有文件的总共大小。