循环结束后调用setVisible方法不就完了

解决方案 »

  1.   

    肯定要用到多线程.
    除了主线程外另起个线程A是处理for循环的,主线程显示个对话框,线程A在每个执行一个循环时改变对话框里文本框的内容.这个我做过,绝对是这样的.
      

  2.   

    // 不用多线程也许可以的
    // 在后台任务处理的部分保存dlg的一个引用
    // 每次需要更新进度条的时候,通过这个引用访问dlg的文本框...
    Dialog1 dlg = null;
    ...
      void jButton1_actionPerformed(ActionEvent e)
      {
        dlg = new Dialog1();
        dlg.show();
        for( int i=0;i < 1000000;i++ )
        {
            for( int j=0;j < 1000;j++ )
            {
            }
            // 更新进度条
            updateProcessDialog();
        }
      }
      

  3.   

    利用多线程的方法:
    1。实现Runnable接口
    2。
    private void showDialog() {
        dialog = new Dialog(this);
        /*
         * dialog初始化,显示
         */
        Thread t = new Thread(this);
        t.start();
    }
    public void run() {
          /*
           * 做for循环
           */
          // 根据结果,重新设置dialog的显示
          stDialog.invalidate();
    }
      

  4.   

    各位,我的问题不是怎样更新进度条
    而是后台任务开始执行后,前面的dialog上的东西根本显示不出来
      

  5.   

    对啊,我的做法就是让dialog先显示,然后再去处理后台任务啊!