Hallo Leuts,
in meiner kleinen Software soll es eine kleine JProgressBar geben und ich habe mir gedacht, da ich das noch nie so wirklich zum laufen bekommen habe, aber schon viel drüber gelesen, Konstruiere ich meine Software von anfang an so das sie über zwei Threads läuft.
Habe hier im Forum gelesen das das generell sowieso ganz sinnvoll sein soll die GUI und die logischen aufgaben in zwei verschiedenen Threads zu trennen.
Nun für mich die Preisfrage, wie geht das?
Ich habe es bisher so versucht:
Ich habe eine Main-Klasse, in der werden zwei Objekte erstellt, einmal das GUI-Frame, und dann meine Controller-Klasse, in der wiederum alle anderen Teilaufgaben und klassen initialisiert werden.
MAIN-Klasse:
allerdings tut sich hier herzlich wenig, und die ProgressBar verrichtet ihre arbeit auch nur auf die gute alte Art: Gui einfrieren und dann auf volle 100%
Auch dieser Versuch führte nicht zum gewünschten erfolg!
Wäre euch dankbar für jede Hilfe!
Sunny
in meiner kleinen Software soll es eine kleine JProgressBar geben und ich habe mir gedacht, da ich das noch nie so wirklich zum laufen bekommen habe, aber schon viel drüber gelesen, Konstruiere ich meine Software von anfang an so das sie über zwei Threads läuft.
Habe hier im Forum gelesen das das generell sowieso ganz sinnvoll sein soll die GUI und die logischen aufgaben in zwei verschiedenen Threads zu trennen.
Nun für mich die Preisfrage, wie geht das?
Ich habe es bisher so versucht:
Ich habe eine Main-Klasse, in der werden zwei Objekte erstellt, einmal das GUI-Frame, und dann meine Controller-Klasse, in der wiederum alle anderen Teilaufgaben und klassen initialisiert werden.
MAIN-Klasse:
Code:
...
SwingUtilities.invokeLater(new Runnable() {
public void run() {
programm = new Programm("Test");
programm.setVisible(false);
System.out.println(Thread.currentThread().toString());
}
});
SwingUtilities.invokeLater(new Runnable() {
public void run() {
controller.init();
programm.setVisible(true);
System.out.println(Thread.currentThread().toString());
}
});
...
allerdings tut sich hier herzlich wenig, und die ProgressBar verrichtet ihre arbeit auch nur auf die gute alte Art: Gui einfrieren und dann auf volle 100%
Code:
private Thread guiThread = new Thread() {
public void run() {
programm = new Programm("Test");
}
}
private Thread logicThread = new Thread() {
public void run() {
controller = new MainController();
}
}
Wäre euch dankbar für jede Hilfe!
Sunny