Hallo
Ich hätte da wieder mal ein Problem. Ich habe ein modales JDialog (Custom-Klasse) welches beim Klick eines Buttons geschlossen werden soll. Dem Dialog wird dynamisch ein abgefülltes JPanel übergeben, welches dann als GUI verwendet wird. Darin wird sich jeweils der Button befinden, der das JDialog schliessen soll. Hier mal ein bisschen Code:
Mehr Code ist glaube ich nicht nötig. Das ModalDialog wird erstellt, sobald auf ein JLabel geklickt wird (arbeite mit JLabels, weil ich ein spezielles GUI habe). Dem ModalDialog gebe ich ein Panel mit, in dem der Button cancel drin ist. Der Listener davon ist im Moment in der Parent-Klasse und dort wird er wie ihr sehen könnt auch abgeprüft.
Das Problem: Der Thread bleibt in ModalDialog jeweils bei setVisible(true) stecken und deswegen wird die Instanziierung nicht fertig gebracht. Dispose meldet eine NullPointerException deswegen und das Ding kann dann mittels Button nicht geschlossen werden. Wie könnte ich das Problem ohne Threads (ich kenne mich mit Threads nicht aus ...) gelöst werden?
Ich habe versucht dem JButton einen neuen Listener mitzugeben, in dem nur dispose gemacht wird, aber das klappte nicht (ich dachte dispose wird auf den aktuellen Fenster gemacht, aber die Referenz lag dabei immer auf das Parent-Frame...).
MfG
Ich hätte da wieder mal ein Problem. Ich habe ein modales JDialog (Custom-Klasse) welches beim Klick eines Buttons geschlossen werden soll. Dem Dialog wird dynamisch ein abgefülltes JPanel übergeben, welches dann als GUI verwendet wird. Darin wird sich jeweils der Button befinden, der das JDialog schliessen soll. Hier mal ein bisschen Code:
Code:
ModalDialog mdialog;
public void actionPerformed(ActionEvent e) {
if(e.getSource() == cancel){
mdialog.dispose();
}
}
public void mouseClicked(MouseEvent e) {
...
mdialog = new ModalDialog(this,"Test",dialogpanel);
...
}
Mehr Code ist glaube ich nicht nötig. Das ModalDialog wird erstellt, sobald auf ein JLabel geklickt wird (arbeite mit JLabels, weil ich ein spezielles GUI habe). Dem ModalDialog gebe ich ein Panel mit, in dem der Button cancel drin ist. Der Listener davon ist im Moment in der Parent-Klasse und dort wird er wie ihr sehen könnt auch abgeprüft.
Das Problem: Der Thread bleibt in ModalDialog jeweils bei setVisible(true) stecken und deswegen wird die Instanziierung nicht fertig gebracht. Dispose meldet eine NullPointerException deswegen und das Ding kann dann mittels Button nicht geschlossen werden. Wie könnte ich das Problem ohne Threads (ich kenne mich mit Threads nicht aus ...) gelöst werden?
Ich habe versucht dem JButton einen neuen Listener mitzugeben, in dem nur dispose gemacht wird, aber das klappte nicht (ich dachte dispose wird auf den aktuellen Fenster gemacht, aber die Referenz lag dabei immer auf das Parent-Frame...).
MfG
Zuletzt bearbeitet: