Hallo zusammen,
leider bin ich bei der Forensuche und Google nicht fündig geworden
. Vielleicht hat jemanden einen Tip für mich oder kann mir sagen was ich falsch gemacht hab.
Also, wollte für mein Programm einen JDialog anzeigen lassen während das Programm längere Zeit arbeitet. Nichts wildes, erstmal nur einen Text "Bitte warten". Das funktioniert auch fast, aber der JDialog wird geöffnet, zeigt nichts an (ist eher Transparent) und wird dann wie geplant geschlossen. Wenn ich den nicht schließen lasse, dann wird der korrekt dargestellt, aber erst wenn der eigentliche Prozess fertig ist.
Bin ich damit total auf dem falschen Weg?
Dazu habe ich eine Klasse LadeDialog erstellt, die den Dialog anzeigt.
Der Konstruktor sieht so aus:
(erstellt in Netbeans)
Wenn ich den Dialog ganz normal öffnen lasse funktioniert alles und das JLabel wird auch angezeigt. Natürlich wird auch setVisible(true) gesetzt.
Dann hab ich noch eine Klasse process geschrieben, die einen Thread startet und dabei den JDialog öffnen soll:
die Methode heißt run, weil ich erst versucht hab von Thread abzuleiten, aber das bringt dasselbe Ergebnis.
So, dann versuche ich das so im Programm aufzurufen:
Würde mich über eine Antwort freuen
MfG
leider bin ich bei der Forensuche und Google nicht fündig geworden

Also, wollte für mein Programm einen JDialog anzeigen lassen während das Programm längere Zeit arbeitet. Nichts wildes, erstmal nur einen Text "Bitte warten". Das funktioniert auch fast, aber der JDialog wird geöffnet, zeigt nichts an (ist eher Transparent) und wird dann wie geplant geschlossen. Wenn ich den nicht schließen lasse, dann wird der korrekt dargestellt, aber erst wenn der eigentliche Prozess fertig ist.
Bin ich damit total auf dem falschen Weg?
Dazu habe ich eine Klasse LadeDialog erstellt, die den Dialog anzeigt.
Der Konstruktor sieht so aus:
Code:
public LadeDialog() {
initComponents();
setVisible(false);
setResizable(false);
setLocationRelativeTo(null);
}
Wenn ich den Dialog ganz normal öffnen lasse funktioniert alles und das JLabel wird auch angezeigt. Natürlich wird auch setVisible(true) gesetzt.
Dann hab ich noch eine Klasse process geschrieben, die einen Thread startet und dabei den JDialog öffnen soll:
Code:
public class process {
LadeDialog ld = null;
boolean running = false;
public process() {
ld = new LadeDialog();
}
public void run() {
Thread th = new Thread() {
@Override
public void run(){
if(running == false) {
ld.setVisible(true);
running = true;
}
}
};
th.start();
}
public void closeDialog() {
ld.dispose();
}
}
So, dann versuche ich das so im Programm aufzurufen:
Code:
// wenn etwas laenger dauert, soll das funktionieren
process p = new process();
p.run();
// ... hier ist ganz viel, was gaaaanz lange dauert, oder so ähnlich
// wenn das fertig ist, dann soll der Dialog wieder verschwinden...
p.closeDialog();
Würde mich über eine Antwort freuen

MfG