Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/assembly/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在其他类中更改jprogressbar_Java_Jprogressbar - Fatal编程技术网

Java 在其他类中更改jprogressbar

Java 在其他类中更改jprogressbar,java,jprogressbar,Java,Jprogressbar,我有一个项目,我想通过另一个类的调用来更改progressbar的值。 我如何实现这一点 static class ButtonActionListener implements ActionListener { @Override public void actionPerformed( ActionEvent e ) { new Thread( new Runnable() { @Override public void run()

我有一个项目,我想通过另一个类的调用来更改progressbar的值。 我如何实现这一点

    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();
    }
  }
静态类按钮ActionListener实现ActionListener{
@覆盖已执行的公共无效操作(ActionEvent e){
新线程(newrunnable())
{
@重写公共无效运行()
{

对于(inti=1;i,您可以调用
bar.setValue(…)
来更改进度

但是,请注意您只能通过在Swing事件侦听器线程上运行的代码安全地执行此操作。从另一个线程调用此方法可能会导致偶尔发生、难以测试和跟踪的模糊故障


使用
SwingUtilities.invokeLater(…)
进行更改是正确的方法。您可以从任何有权访问
引用的代码中执行此操作。例如,您可以通过getter公开它。

请发布您的代码,以便我们可以帮助您查找错误。实际上,这是我更改值的代码。现在,我想从其他类调用此方法。