本帖最后由 poochuan 于 2011-10-03 16:42:40 编辑

解决方案 »

  1.   

       class SetPercent implements Runnable {        private JLabel label = null;
            private int percent = 0;
            public SetPercent(JLabel label){
                this.label = label;
            }
            @Override
            public void run() {
                while (percent < 100){
                    synchronized (this.label){
                        this.label.setText(String.valueOf(++percent));                   
                    }
                    try {
                        Thread.sleep(250);
                    } catch (InterruptedException ex) {}
                }
                
                
            }
            
        }
    new Thread(new SetPercent(this.jLabel1)).start();
      

  2.   

    请问为什么还是不行呢,我改了下应该不影响,,烦请解答,谢谢import javax.swing.JLabel;public class SetPercent implements Runnable { private JLabel label = null;
    private String value = null; public SetPercent(JLabel label, String value) {
    this.label = label;
    this.value = value;
    } @Override
    public void run() {
    synchronized (this.label) {
    this.label.setText(String.valueOf(value));
    }
    try {
    Thread.sleep(250);
    } catch (InterruptedException ex) {
    } }}我把程序改成了这样,我在调用时这样调用for (N n: ns) {
    new Thread(new SetPercent(status,"正在生成 :" + n.getName())).start();

    }这样是不是我就开了多个实例不同步了
      

  3.   

    http://lanvis.blog.163.com/blog/static/26982162009798422547/
      

  4.   

    只能开一个线程,然后在该线程中循环。
    如果Label的text不能自增长生成的话,可以从线程中访问外面的源变量的。
      

  5.   


    请问我能拿到那个线程吗,不好意思,我对线程没有太大的概念, 比如这样:
    Thread thread = new Thread(new SetPercent(status,"正在生成 :" + n.getName())).start();
    可以却报错,
      

  6.   


    请问我在外部需要怎么来调用呢,比如:
    我的for循环在外部,谢谢
    for (N n: ns) {
    //new Thread(new SetPercent(status,"正在生成 :" + n.getName())).start();}