0

我希望用户按下“运行”按钮后立即弹出一个不确定的进度条,然后在应用程序要完成的工作完成时关闭。我使用 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。

4

1 回答 1

2

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

您必须将计算移至单独的位置Thread以释放 EDT。然后 EDT 将能够在计算过程中显示 a JProgressBar,并在计算完成后将其删除。

有关这方面的更多信息,请参阅“Swing 中的并发”教程。可以在此处SwingWorker找到 a和 a的示例。JProgressBar

于 2012-07-19T09:28:29.127 回答