我现在有两个类。一个类继承自JFrame,叫A。一个做后台文件处理,叫B。A和B是两个线程。点A上一个按钮。就开始让后台处理程序B执行。B内现有一循环,循环内有一变量x。循环每执行一次。变量x就递增1。我想让x的值显示每递增一次后显示在A的一个JLabel内。请问如何实现。

解决方案 »

  1.   

    B在构造函数中带个参数 持有A的引用 通过这个引用控制A的labelA: 
      B b = new B(a);
      b.start();B: 
      private A a;
      public B(A a){
        this.a = a;
      }
      public void run(){
         //a.label.setText(....)  }
      

  2.   

    类A:
    public class PumpIntoFolderJFrame extends javax.swing.JFrame implements Runnable
       {
        static Thread mainjframe = new Thread(newPumpIntoFolderJFram());;
        do()
        {
          WriteSqlAndPumpDB wsapdb = new WriteSqlAndPumpDB(mainjframe);
          wsapdb.start();
        }
       }
    类B:
    public class WriteSql extends Thread
    {
        PumpIntoFolderJFrame mainjframe;
        WriteSql(Thread mainjframe)
          {
           this.mainjframe = PumpIntoFolderJFrame.class.cast(mainjframe)
         }
        public void run()
         {
         }
    }
    为什么我debug程序。当运行到类B的类方法里的语句时就有问题。请帮帮我。谢谢
      

  3.   

    一个继承的Thread 一个实现的Runnable接口  怎么能cast呢 
      

  4.   

    是不是要统一一下。全部实现runnable?
      

  5.   

     static   Thread   mainjframe   =   new   Thread(newPumpIntoFolderJFram());; 
    这个改成
    static   PumpIntoFolderJFram mainjframe   =   new   PumpIntoFolderJFram(); 
    WriteSql(PumpIntoFolderJFram mainjframe) 
                { 
                  this.mainjframe   =   mainjframe 
              }