if (bean.getState().equals("0")) {
Photo1 photo = new Photo1();
photo.setBean(bean);
photo.setFlag(true);
photo.setProgressBar(progressBar);
photo.setTextArea(textArea);
photo.start();

photo.join(); // 加上这句 我的SWING 界面 就像 要死机的样子 怎么回事了? 最下华,所以按钮都用不了了
button_go.setEnabled(true);
button_auto.setEnabled(true); }

解决方案 »

  1.   

    我还没学到这呢。。楼主试一下这个方法
    把photo.join(); 这句改成
    try{
    photo.join(); 
    }catch(InterruptedException ie){}
      

  2.   

    你join了一个线程进来了,显得让加进来的线程运行完在运行你的
      

  3.   

    join就是组赛当前线程,等待被调用线程运行结束,如果被调用线程里面有一个死循环,调用线程永远别想得到运行,就出现界面司机这种情况。
      

  4.   

    private void Auto() throws Exception {
    String path = System.getProperty("user.dir") + "/org/semo/literature/";
    File f = new File(path);
    File lists[] = f.listFiles();
    for (int i = 0; i < lists.length; i++) {
    list.setSelectedIndex(i);
    LiBean bean = Load(lists[i].getAbsolutePath());
    if (bean.getState().equals("0")) {
    Literature wen = new Literature();
    wen.setBean(bean);
    wen.setFlag(true);
    wen.setProgressBar(progressBar);
    wen.setTextArea(textArea);
    wen.start(); wen.join(); 

    }
    }
    }如果 当前的 Literature线程没结束,for 循环就不能继续只有当前的Literature线程 结束后 才能继续创建新的 Literature线程但wen.join(); 加上后,程序就像死机了一样除了用 wen.join() 外,还有什么办法没在 Literature 类有个isFlag() 方法 可以判断该线程是否结束isFlag() = false 已经结束,反之