Jak zaktualizować GUI java z wątku?

 private void StartActionPerformed(java.awt.event.ActionEvent evt) {

        Queue queue=new Queue();
        int target=Integer.parseInt(Target.getText());
        String path=Path.getText();
        final Producer p=new Producer(queue, target);
        Consumer c=new Consumer(queue);
        p.start();
        c.start();

        while(p.finish !=true)
        {
          Runnable r = new Runnable() {
            public void run() {
              ProgressPrecent.setValue(Producer.ProgressPercent);
            }
          };
          if(EventQueue.isDispatchThread()) {
            r.run();
          }
          else {
            EventQueue.invokeLater(r);
          }
       }
 }

Mam dwie klasy, które mają wspólną kolejkę. jednym z nich jest producent, który wytwarza, aż cel inny zużyje te elementy. wszystkie dwa rozszerzają wątek. Chcę wyświetlić procent postępu użytkownikowi, ale zamroził mój GUI, więc co mam zrobić?

questionAnswers(2)

yourAnswerToTheQuestion