计算之前标签显示“计算时间=0”,我想在执行一段计算之前让标签显示“计算中”,计算之后再让标签显示显示计算所用的时间,可每次都不显示“计算中”,直接等计算完成标签才更新为计算所用的时间(每次计算的时间在5秒以上),请高手帮忙

解决方案 »

  1.   

    最好先private Label label=null;每次事件label=new Label();label.setText("")试试
      

  2.   

    你计算前 有调用setText方法吗  质疑~
      

  3.   

    试试这个:SwingUtilities.invokeLater(new Runnable() {
        public void run() {
            //更改JLabel
        }
    });
    //计算
    ...
      

  4.   


    可以用這個   可以試試改變文字后  updateUI()下
      

  5.   

    创建线程进行不断的更新label类的时间值
    当工作完毕时终止线程即可!
      

  6.   

    将你的代码,放到线程run()中就可以实现了,
      

  7.   


    label.setText("计算中");
    new Thread() {
    public void run() {
    int itime = 0;
    // 此处为计算过程代码......

    final int I_TIME = itime;

    javax.swing.SwingUtilities.invokeLater(new Runnable() {
    public void run() {
    label.setText("计算时间=" + I_TIME);
    }
    });
    }
    }.start();
      

  8.   

    我也遇到了这个问题,我编写的模仿Windows记事本,读取大文件时十分慢(已经比Windows记事本快多了),我就想在读取之前给个提示,把显示文本的区域setText("正在读取文件,请稍等"),但是这样并不姓,这句话从来没显示过。
    我估计是因为CPU太忙,没给他显示。
    以前用VB的时候,默认也是这样的,那是我们的解决办法就是在这一局后面加上DoEvents。
    可惜Java里边没有类似的语句。只能自己想办法。