Хм, в доку профтыкал малёк
Значит хочу написовать ProgressBar, пока идет работа с файлами.
Значит создал отдельный класс public class ProgressBar extends Thread.
Метод run() содержит следующий код:
public void run(){
try {
Runnable showModalDialog = new Runnable() {
public void run() {
// jD.setVisible(true);
JOptionPane.showMessageDialog(null,"Hello There");
}
};
SwingUtilities.invokeAndWait(showModalDialog);
}
catch(Exception t){}
}
invokeAndWait тут потому, что:
1 - в доке написано, что можно вызывать из любого потока
2 - хочу, чтобы сначала прогрессбар отобразился, а потом пошла работа с файлами
3 - в других классах пишет ошибку.. что мол не может вызвать этот метод в внутри диспатч-ивент... или около того
Вызываю из другого объекта так:
ProgressBar pB = new ProgressBar();
...
pB.setupProgressBar(); - код отрисовки (jDialog = false)
pB.setPriority(Thread.MAX_PRIORITY);
pB.start(); - тут должна появиться надпись еще до начала копирования файлов... однако появляется только после завершения копирования. С прогрессбаром то же самое - появляется после копирования....
Что я не так делаю?