public NewJDialog(java.awt.Frame parent, boolean modal) {
    super(parent, modal);
    initComponents();
  jProgressBar1.setVisible(false);

}

private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
    jButton1.setEnabled(false);
    jProgressBar1.setVisible(true);
   repaint();
   for(int i=0;i<=100;i+=5){
          jProgressBar1.setValue(i);
         // jProgressBar1.setIndeterminate(false);
          try{
              jProgressBar1.paintImmediately(0, 0, 100, 100);//0, 1, 100, 10
          Thread.sleep(100);
          jProgressBar1.setStringPainted(true);

     }catch(Exception e){}
    }


我使用上面的代码在JDialog中使用Jprogressbar。如果使用此按钮,则在完成进度条后(100%)可以看到进度条,而且我也不想在buttonclick之前显示进度条。

最佳答案

使用单独的线程来运行任务。进度条没有机会在GUI线程上绘制。您需要像SwingWorker这样的工具来帮助您。
单击按钮后,将进度条添加到GUI。
有关如何设置的详细信息,请参见Java tutorial

10-08 19:42