Ich habe einen Dialog mit mehreren Buttons (Bsp. Okay und Cancel), der aufgerufen wird.
Der Aufruf sieht folgendermassen aus:
Java:
System.err.println("Opening dialog.");MyDialog dlg =newMyDialog();
dlg.setModal(true);
dlg.setLocationRelativeTo(jContentPane);System.err.println("After opening dialog.");System.out.println(dlg.getAnswer());if(dlg.getAnswer()=="okay"){System.out.println("The user clicked okay");}if(dlg.getAnswer()=="cancel"){System.out.println("The user clicked cancel");}
Im Dialog wird dann gewartet, ob der User Okay oder Cancel drückt.
"Answer" wird gesetzt.
Aber es wird beim Aufrur zu früh abgefragt (bevor der User geklickt hat).
Wie kann ich erreichen, dass answer erst abgefragt wird, wenn der User geklickt hat?
Wenn ich dich richtig verstanden habe, dann willst du den User erst fragen, ob er die Anwendung wirklich schließen möchte, in dem Fall schaue dir bitte mal die Klasse
Neinnein, ich habe in dem Dialog noch weitere Elemente...
2 Radio Buttons, wo ein Format gewählt werden kann und 3 Buttons mit Okay, Abbrechen und Hilfe.
Es geht mir darum, wie ich aus dem Dialog z.B. den ausgewählten Radio Button zurück geben kann an das ursprüngliche Fenster?
das geht mit einem modalen Dialog und etwa dem Code, den du oben hast,
setModal(true);
hast du sogar schon, sehr wahrscheinlich wird aber vorher setVisible(true); ausgeführt,
dann funktioniert das modal anscheinend nicht mehr,
vergleiche
Java:
publicclassTest{publicstaticvoidmain(String[] args){System.err.println("Opening dialog.");MyDialog dlg =newMyDialog();
dlg.setModal(true);
dlg.setVisible(true);
dlg.setLocationRelativeTo(null);System.err.println("After opening dialog.");System.out.println(dlg.getAnswer());if(dlg.getAnswer()=="okay"){System.out.println("The user clicked okay");}if(dlg.getAnswer()=="cancel"){System.out.println("The user clicked cancel");}}}classMyDialogextendsJDialog{publicStringgetAnswer(){returnnull;}}
Neinnein, ich habe in dem Dialog noch weitere Elemente...
2 Radio Buttons, wo ein Format gewählt werden kann und 3 Buttons mit Okay, Abbrechen und Hilfe.
Es geht mir darum, wie ich aus dem Dialog z.B. den ausgewählten Radio Button zurück geben kann an das ursprüngliche Fenster?
Wo du dein MyDialog her hast, weiß ich doch
aber was du mit dem Rest meinst :bahnhof: sry
Erkläre doch mal genau was du da vor hast!
Verwendest du MyDialog in einer anderen Klasse, weil wenn es so ist, dann ist das totaler Blödsinn und man könnte das viel eleganter lösen! Schreib mir doch mal eine PM und beschreibe mir das ganze etwas genauer bitte, so das ich alles verstehen kann und ich werde dir helfen!
@Java@Home
Ich setze in dem Dialog einen Wert (answer), den der User per Radio Button auswählt.
Nun willl ich im Hauptfenster diesen Wert abfragen. Das kann ich aber erst, wenn er auch gesetzt wurde -> der User geklickt hat.
So wie SlaterB geschrieben hat, muss das setModal() vor dem setVisible() stehen, dann funktionierts!