JProgressBar w nowym wątku JDialog
Chciałbym zrobić JProgressBar w nowym JDialogu, który będzie w oddzielnym wątku od głównej logiki. Mogę więc rozpocząć nieokreślony postęp po prostu tworząc nowy JDialog i kończąc postęp w usuwaniu JDialog. Ale trudno mi to osiągnąć, ponieważ po pojawieniu się JDialog nie pokazuje żadnych komponentów (w tym JProgressBar), dopóki logika w głównym wątku (SwingUtilities) nie zostanie wykonana.
Wątek zawierający JDialog:
package gui.progress;
public class ProgressThread extends Thread {
private ProgressBar progressBar = null;
public ProgressThread() {
super();
}
@Override
public void run() {
progressBar = new ProgressBar(null);
progressBar.setVisible(true);
}
public void stopThread() {
progressBar.dispose();
}
}
Metoda przełączania JProgressBar:
private static ProgressThread progressThread = null;
...
public static void toggleProcessBar() {
if(progressThread == null) {
progressThread = new ProgressThread();
progressThread.start();
} else {
progressThread.stopThread();
progressThread = null;
}
}