从操作侦听器添加不确定的JProgressBar



我希望在用户按下"运行"按钮后立即弹出一个不确定的进度条,然后在应用程序完成工作时关闭。我使用NetBeans来开发GUI。我该怎么做?gui类扩展了JFrame。下面是运行按钮的动作监听器:

public class GUI extends JFrame{
    // other methods and constructos....
private JProgressBar pb = new JProgressBar();
private void runButtonActionPerformed(java.awt.event.ActionEvent evt) {                                          

   pb.setIndeterminate(true);
   //other functions start...
   runButton.setEnabled(false);
    setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR));
   //....blah blah
}
}

如何将进度条添加到JFrame中,然后在工作完成后将其删除?我不想使用Swing Worker。

您不想使用SwingWorker,但必须使用(或类似的机制)。当事件调度线程(EDT)忙于计算时,不能显示JProgressBar

您必须将计算转移到单独的Thread才能释放EDT。然后EDT将能够在计算过程中显示JProgressBar,并在计算完成时将其删除。

有关这方面的更多信息可以在"Swing中的并发"教程中找到。这里可以找到SwingWorkerJProgressBar的示例。

最新更新