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。