public class A extends Thread{
String message;
   B b;
public A(){ }
public void run(){
callB();
}
public void callB(){
  System.out.println("Start");
b=new B(this);
b.start();
C c=new C();
(new Thread(c)).start(); try{
  b.join();
}
catch(Exception e){ }
c.hideDialog(); }
public String getMessage(){
return message;
}
public void setMessage(String message){
this.message=message;
}}

解决方案 »

  1.   

    你的classA里面线程都没有启动呀,怎么行呢shangqiao(伤桥)的思路至少是正确的。
      

  2.   

    我不明白的是,你指定了A是线程,然后实现了run,可是我不明白这能起到什么作用呢?
      

  3.   

    在Frame3中你原来调用的代码是:a.callB(),但是现在是用:a.start();
      

  4.   

    如果改成a.start(),等待窗口和按钮状态是显示正常了,可是我的Frame3中确得不到CallB的正确结果。因为start()后Frame3继续处理其他的。
      

  5.   

    哦!是这样,也就是说你想要Frame在线程完成时执行某些操作是吗?那么你可以在Frame3里面加上一个方法,如叫做callBack();在这个方法里面你出来当线程运行完时想要的处理,如打印出"线程完成",然后将这个Frame的实例通过线程的构造子传给要执行的线程对象,当线程执行完成时,再回调Frame的这个clllBack()方法,那么不久办到了吗!