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);
}
}
}
共有キューを持つ 2 つのクラスがあります。それらの1つは、ターゲットがそれらの要素を消費するまで生成するプロデューサーです。2 つすべてがスレッドを拡張します。進捗率をユーザーに表示したいのですが、GUI がフリーズします。どうすればよいですか?