我有一个项目,我想通过另一个类的调用来更改进度条的值。 我怎么能实现这个呢?
static class ButtonActionListener implements ActionListener {
@Override public void actionPerformed( ActionEvent e ) {
new Thread( new Runnable()
{
@Override public void run()
{
for ( int i = 1; i <= bar.getMaximum(); ++i )
{
final int j = i;
SwingUtilities.invokeLater( new Runnable()
{
@Override public void run() {
bar.setValue( j );
}
} );
}
}
} ).start();
}
}
答案 0 :(得分:0)
您致电bar.setValue(...)
以更改进度。
但是,要注意,您只能从在Swing事件侦听器线程上运行的代码安全地执行此操作。从另一个线程调用此方法可能会导致模糊的故障,这些故障只会偶尔发生,很难测试,很难追踪。
使用SwingUtilities.invokeLater(...)
进行更改是正确的方法。您可以从任何有权访问bar
引用的代码执行此操作。例如,您可以通过getter公开它。