Auf Elternobjekt zugreifen

ZeroEnna

Erfahrenes Mitglied
Hallo zusammen

Ich bin gerade an einer kleinen Personalverwaltung die ich mit einer MDI-Oberfläche versehen habe.
Nun bin ich auf ein Problem beim Eventhandling gestossen. Ich muss irgendwie das Elternobjeket eines JButton holen.
Ich habe das ganze mit einem JDesktopPane und JInternalFrame gelöst. Der besagte Button befindet sich in einem JInternalFrame. Nachdem der User auf den Button klickt sollen die Eingaben in den Feldern die sich im gleichen JInternalFrame befinden in ein INI-File gespeichert werden.
In der actionPerformed Funktion habe ich aber nur Zugriff auf das Event selbst. Darum brauche ich das Elternobjekt des JButton um auf die Eingabefelder (JTextField) zugreifen zu können.
Der ActionHandler selbst ist eine Seperate klasse. Alle JInternalFrames greiffen auf die selbe Instanz des ActionHandlers zu.
Ich hoffe das ganze ist irgendwie verständlich, kann es kaum besser formulieren.

THX

mfG
ZeroEnna
 
Zuletzt bearbeitet:
Mit ActionEvent.getSource() kannst du dir das Objekt holen, welches den Event ausgelöst hat. Von dort kannst du dich zum gewünschten Panel "hochhangeln" mit getParent() glaub ich ..
 
Funktioniert leider nicht da der Source die Funktion getParent() nicht hat!
Trotzdem danke.

Hat sonst noch wer ne Idee?

mfG
ZeroEnna
 
Probier mal
Code:
public void actionPerformed(ActionEvent e) {
		System.out.println(((JTextField)e.getSource()).getParent().getParent());
		
		
	}
damit kannst du dich "hochamgeln"..
mfg

//edit

Bei dir muss wahrscheinlich JButton anstelle von JTextField rein...
 
Kaum ist ein Problem behoben kommt schon das nächste. Da es ein witerführendes Probelm vom ursprünglichen ist, wollte ich keinen neuen Thread eröffnen.

Wenn ich nun vom Elternobjekt nun eine Funktion aufrufen will, z.B. windowPersonen.this.setMode(0);

Wenn ich dies versuche kommt immer nur die Meldung "No enclosing instance of the type windowPersonen is accessible in scope", aber irgendwie werde ich nicht schlau aus der Meldung.

Könnt ihr mir mal wieder weiterhelfen? :rolleyes:


mfG
ZeroEnna
 
Mittlerweile habe ich es kapiert wieso es nicht geht. Wenn man die Klasse per getParent() holt, kann man wie es aussieht nicht auf die Funktionen sondern nur auf die Objekte der Klasse (sprich Textfelder und ähnliches) zugreiffen, weil es keine direkte Instanz der Klasse ist.

Das this dort versteh ich auch nicht so ganz, aber ohne dies werden die funktionen des Elternobjektes garnicht aufgelistet.
 
Hm .. sollte man schon, denke ich. Ich denke mal eher, da liegt ein Problem mit der Sichtbarkeit vor. Kann es sein, dass du auf private Klassenmethoden zugreifen willst? Die kann man nämlich nicht einfach so von außen aufrufen.
 

Neue Beiträge

Zurück