JProgressBar без JButton и PropertyChangeListener

Я новичок вJProgressBar а также новичок в концепции ООП (изучая его), прочитал много статей и старался изо всех сил выучить его. Во всех показанных примерах была кнопка, которая запускает прогресс в ней, но как я могу сделать метод, чтобы при вызове метода он запускал прогресс?

Вот мой код первым

import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JProgressBar;
import javax.swing.SwingWorker;

public class ProgressDemo
{
    JProgressBar ProgressBar;
    Task task;
    boolean done = false;

    class Task extends SwingWorker<Void, Void> 
    {
        @Override
        public Void doInBackground() 
        {
            Random random = new Random();
            int progress = 0;
            setProgress(0);
            while (progress < 100) 
            {
               try 
               {
                    Thread.sleep(random.nextInt(1000));
               } 
               catch (InterruptedException ignore){}
               progress += random.nextInt(10);
               setProgress(Math.min(progress, 100));
            }
            return null;
        }
        @Override
        public void done() 
        {
            done = true;
        }
    }

    public void propertyChange(PropertyChangeEvent evt) 
    {
      if(!done)
      {
        int progress = task.getProgress();
        if(progress==0)
        {
            ProgressBar.setIndeterminate(true);
        }
        else
        {
            ProgressBar.setIndeterminate(false); 
            ProgressBar.setString(null);
            ProgressBar.setValue(progress);
        }
      }
    }

    //I want to make a method here, so that it can be called when ever I want
    public void ExecuteTask()
    {
        task = new Task();
        task.execute();
    }

    public static void main(String[] args) 
    {
        JFrame MainScreen = new JFrame(); 
        JPanel MainPanel = new JPanel();
        ProgressBar = new JProgressBar(0, 100);
        ProgressBar.setValue(0);
        ProgressBar.setStringPainted(false);
        MainPanel.add(ProgressBar);
        MainScreen.getContentPane().add(MainPanel);
        MainScreen.setVisible(true);
    }
}

мойjProgressBar не слушает, когда я звонюExecuteTask () метод. Как я могу сделать это, чтобы позвонитьExecuteTask () и он выполняет задачу, а jProgressBar его слушает?

Ответы на вопрос(1)

Ваш ответ на вопрос