Возможный дубликат:
Java GUI JProgressBar не рисует
Можно ли использовать индикатор выполнения в класс вне основного?
Я использую перетаскивание Netbeans для выполнения приложения. Я получу ввод от пользователя и использую ввод для запуска моего алгоритма. Алгоритму потребуется разное время для запуска, а затем он покажет результат в новом кадре. В ожидании запуска алгоритма я хочу добавить индикатор выполнения. Я добавляю приведенный ниже код, когда пользователь нажимает кнопку отправки ввода.
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
final JProgressBar bar = new JProgressBar(0,250000);
bar.setValue(1000);
bar.setIndeterminate(false);
JOptionPane jO = new JOptionPane(bar);
Thread th = new Thread(){
public void run(){
for(int i = 1000 ; i < 250000 ; i+=10000){
bar.setValue(i);
try {
Thread.sleep(100);
} catch (InterruptedException e) {
}
}
}
};
th.start();
final JDialog dialog = jO.createDialog(jO,"Experiment X");
dialog.pack();
dialog.setVisible(true);
//Algorithm goes here
Индикатор выполнения отображается и запускается. Но когда значение индикатора выполнения обновляется до конца, запускается только мой алгоритм. Я вижу через другие примеры, но я не очень понимаю, как это работает.
Может кто-нибудь сказать мне, где я ошибся?