Hauptprogramm pausieren und auf Ergebnis eines JDialogs warten

MusicIsLife

Mitglied
Hallo Leute,

Ich hab da ein Problem mit einem JDialog, den machen möchte. Im Internet schon ewig gesucht und nichts gefunden.

Es ist also so, dass ich eine Server-Client Anwendung erstellen möchte, bei der der man im GUI über einen Menüpunkt dann zwei Dateien auswählen soll, die gestartet werden.Hierzu wird nun ein JDialog geöffnet.
Da nun, abhängig davon, ob der User den Vorgang mit "ok" bestätigt oder abbricht, unterschiedliche Aktionen danach ausgeführt werden sollen, muss das Hautprogramm praktisch warten, bis im JDialog ein ActionEvent geworfen wurde, weil auf einen Button geklickt wird.
Und genau da liegt mein Problem: ich krieg's nicht hin, dass das Hauptprogramm wartet, bis die Antwort vom JDialog kommt.
Denn das erstellen des JDialogs ist ja schon zu Ende, auch wenn noch kein ActionEvent geworfen wurde. man kann die return-Anweisung aber auch nicht in den (anonymen)ActionListener packen, weil die dann die die actionPerformed-Methode terminiert, und nicht das fertigstellen des JDialogs, der ja mit der Rückgabe entweder des "ok"-Integers oder des "cancel"-integers beendet werden soll. So wie bei JOptionPane.showOptionDialog, wo man ja auch einen int zurückbekommt. Mit Threads hab ihcs schon probiert, dann wird der JDialog nicht richtig aufgebaut und reagiert nicht etc....

Vielen Dank im voraus für eure Ideen...bin eh Java-Neuling, vllt bin ich ja auch einfach nur zu doof und hab eig. die ganze Zeit die Lösung direkt vor der Nase.
 

MusicIsLife

Mitglied
Weil ich zwei Dateien auswählen möchte und es unschön finde, zwei mal so einen Dialog zu öffnen und es außerdem noch z.B. noch eine JComboBox gibt, wo man noch Einstellungen wählen kann....wenn es dazu was passendes wäre wäre ich sehr froh, aber ich glaube schon dass ich das selbst machen muss...
 
S

sdasdasdasdasd

Gast
Mit JFileChooser ist es möglich mehrere Dateien auszuwählen.
Oder wo genau liegt dann das Problem?
 

MusicIsLife

Mitglied
bei der JComboBox... auch das könnte man natürlich in einem anderen Panel machen, aber wie gesagt, fände ich unschön.
dass man allerdings den filechooser auch mehrere Dateien auswählen lassen kann, wusste ich nicht. dafür schon mal vielen dank.
wäre trotzdem noch an Lösungsvorschlägen, das Programm iwie auf die actionPerformed-Methode warten zu lassen, sehr froh.
 

kceenav

Mitglied
Reicht es nicht, wenn der JDialog "modal" ist? (<code> bezeichnerVonJDialog.setModal(true) </code>)

Dann dafür sorgen, dass während der Abarbeitung des Konstruktors das Dialog-Fenster "visible" wird, und schon pausiert der Thread, von dem aus das Ganze gestartet wurde, bis das Fenster wieder unsichtbar wird (also je nachdem.. pausiert dann zum Beispiel der "Rest" des Programms).
 

Michael...

Top Contributor
Einfach nur Dialog anzeigen lassen und per Listener auf Aktionen des Dialogs "warten". Erst der Listener bestimmt dann, wie es weiter geht.
 

MusicIsLife

Mitglied
@kceenav: Der Dialog ist Modal....wird aber nicht im Konstruktor, sondern wo anders visible gesetzt, das probiere ich nachher mal.

@Michael...: Das ist ja praktisch auch so. der Dialog bleibt offen, solange nicht auf einen der Buttons geklickt wurde, s.h. der Listener wartet ja. das Hauptprogramm läuft dennoch weiter....naja, ich werde mal das von kceenav probieren....danke schon mal....
 

Ähnliche Java Themen

Neue Themen


Oben