Я не могу обновить свой прогрессбар ... это мой кодUpdate JProgressBar
Thread t=new Thread(new Runnable(){
public void run(){
int i=1;
jProgBar.setMinimum(0);
jProgBar.setMaximum(100);
try {
while(i<=100 || true){
jProgBar.setValue(i);
i++;
Thread.sleep(50);
}
}
catch (InterruptedException ex){
jProgBar.setValue(jProgBar.getMaximum());
}
}
});
t.start();
.... Something code that correctly works
t.interrupt();
состояние прогресс бар обновляется только в конце нити. Может кто-нибудь мне помочь?
Да, это в соответствии с принципом, что любые изменения в состоянии компонентов должны быть сделаны из событий диспетчерского Thread. Очевидно, что Swing был разработан таким образом (с одной резьбой), чтобы избежать слишком большой сложности. Любые вызовы извне могут вызвать потенциальную блокировку. Я понимаю, что invokeLater() помещает вызов в конце очереди выполнения. –