1

我想在面板中更改 JSlider 的值,而我正在运行一个线程,它给了我这个值(因为取得了一些进展)

所以我计算线程中的进度值,并使用 GET 方法获取面板中的值并将其设置为进度条。

调试后,有一个值,但EDIT:[ JProgressBar ]不会更改他的 UI。

一些代码:

while(_thread.isAlive()) {
 pb_calc.setValue(_thread.getVal());
 pb_calc.updateUI();
}
4

1 回答 1

4
  • 不要使用updateUI,此方法保留用于Look and FeelUIManager

  • 的输出Background Tasks应该被包装成invokeLater,更多教程Concurency in Swing

  • 更好的是从内部或内部调用BackgroundtaksSwingWorkerRunnable#Thread

于 2012-04-19T15:20:16.257 回答