Zugriff auf Variablen in nicht bekannten Instanzen

bifidus

Mitglied
Ich habe drei Klassen. Nennen wir sie a, b und c.

In a ist die main-methode beheimatet. In dieser Klasse a wird eine Instanz der Klasse b gebildet (ein JFrame). In dieser Klasse b wird eine Instanz der Klasse c(ein JPanel) gebildet.

Wie kann ich nun von der Klasse a aus in einem JTextField, das sich in der Instanz von c befindet, den Text ändern? a kennt ja die Instanz von c nicht?!

Ich hoffe das Problem kann einigermassen nachvollzogen werden.
 
Methode in B einbauen?

Entweder ein getPanel(), dass C liefert, oder eine Methode setText(String text), die direkt den Text in C ändert.
 
Du könntest in der Klasse b eine public-Methode (Beispiel: setText(String infotext) definieren. setText ist dann in a aufrufbar, weil es eine Instanz-Variable vom Typ b in a gibt.

In setText wiederum rufst du wiederum eine Methode von c auf, die den Parameter "infoText" an das JPanel weitergibt.
 
Es gibt zwei möglichkeiten, du musst von a in b und dann in c werte übergeben und dies in deinen methoden einbinden oder du sagst einfach b erbt c.

also endweder durchreichen oder b extends c.
 
ok, danke. Soweit wäre das klar. War auch meine erste Idee.

Die Frage dabei ist folgende: Ich habe das ganze versucht zu trennen. Klasse b ist ja das VIEW (ein JFrame). Klasse c ist ein einfaches JPanel, das in das JFrame eingaubt wird. a ist der Controller (ActionListener) der die Aktionen des JFrames (z.B. Buttons) verarbeitet.

Daher wollte ich mal wissen, ob es da noch andere Möglichkeiten gibt.
 
Du könntest das ganze auch noch über listener realisieren.
Dein View würde dann über Änderungen am Model informiert werden und kann dann dementsprechend seine Darstellung ändern.
 

Neue Themen


Zurück
Oben