【问题标题】:Adding a indeterminate JProgressBar from an action listener从动作监听器添加一个不确定的 JProgressBar
【发布时间】:2012-07-19 09:20:07
【问题描述】:

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

【问题讨论】:

    标签: swing user-interface progress-bar jprogressbar


    【解决方案1】:

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

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

    更多信息可以在'Concurrency in Swing' 教程中找到。 SwingWorkerJProgressBar 的示例可以在 here 找到。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-01-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-06-02
      • 2021-03-13
      相关资源
      最近更新 更多