Guten morgen!
Ich bin gerade dabei mich in Java einzuarbeiten und stehe nun vor einem Problem. Ich bin inzwischen soweit, dass ich eine GUI(JFrame) erstellt habe in der 2 JPanels liegen. Ein JPanel mit einer JTextarea und ein ein JPanel mit einem JButton. Für den Aufbau der GUI habe ich das Frame und die beiden Panels jeweils in einer eigenen Klasse umgesetzt. Das JFrame instanziiert nun jedes Panel einzeln.
Nun zu meinem Problem:
Ich möchte wenn ich den Button drücke einen Text im Textarea des anderen Panel-Objekts anzeigen. Allerdings kennt mein Panel mit dem Button(der Einfachheit halber nenne ich es PnlButton und das andere PnlText) das PnlText nicht und somit kann ich aus der ActionPerformed()-Methode des ActionListener nicht auf dieses PnlText und dessen Textarea zugreifen. Was muss ich dazu machen?
Eine Lösung wäre das Textarea statisch zu machen so, dass ich per PnlText.TEXTAREA darauf zugreifen kann aber ich denke das ist KEIN sauberer Programmierstil. Schließlich kann man ja (fast) alles statisch definieren und dann sind Objekte ja fast unnötig.
Dachte schon an eine Oberserver Klasse der jede Komponente auf einem Panel bekannt gemacht wird, oder wenigstens das Panel-Objekt aber auch da weiß ich nicht wie es um zu setzen ist. Alternativ dachte ich an eine abstrakte Klasse oder ein Interface aber da kam ich auch nicht weiter. Frustrierend ist das :-( Aber es kann doch nicht so schwer sein in einer GUI eine Objekt/Klassen-übergreifende Kommunikation zu programmieren und das auch noch in einer sauberen Lösung ohne hingefrickel.
Also kann mir jemand von euch einen Tip geben oder vielleicht sogar mein kleines Beispiel umsetzen und mir daran erklären was ich tun muss? Ich wäre euch sehr dankbar.
Liebe Grüße JuSTuS
Ich bin gerade dabei mich in Java einzuarbeiten und stehe nun vor einem Problem. Ich bin inzwischen soweit, dass ich eine GUI(JFrame) erstellt habe in der 2 JPanels liegen. Ein JPanel mit einer JTextarea und ein ein JPanel mit einem JButton. Für den Aufbau der GUI habe ich das Frame und die beiden Panels jeweils in einer eigenen Klasse umgesetzt. Das JFrame instanziiert nun jedes Panel einzeln.
Nun zu meinem Problem:
Ich möchte wenn ich den Button drücke einen Text im Textarea des anderen Panel-Objekts anzeigen. Allerdings kennt mein Panel mit dem Button(der Einfachheit halber nenne ich es PnlButton und das andere PnlText) das PnlText nicht und somit kann ich aus der ActionPerformed()-Methode des ActionListener nicht auf dieses PnlText und dessen Textarea zugreifen. Was muss ich dazu machen?
Eine Lösung wäre das Textarea statisch zu machen so, dass ich per PnlText.TEXTAREA darauf zugreifen kann aber ich denke das ist KEIN sauberer Programmierstil. Schließlich kann man ja (fast) alles statisch definieren und dann sind Objekte ja fast unnötig.
Dachte schon an eine Oberserver Klasse der jede Komponente auf einem Panel bekannt gemacht wird, oder wenigstens das Panel-Objekt aber auch da weiß ich nicht wie es um zu setzen ist. Alternativ dachte ich an eine abstrakte Klasse oder ein Interface aber da kam ich auch nicht weiter. Frustrierend ist das :-( Aber es kann doch nicht so schwer sein in einer GUI eine Objekt/Klassen-übergreifende Kommunikation zu programmieren und das auch noch in einer sauberen Lösung ohne hingefrickel.
Also kann mir jemand von euch einen Tip geben oder vielleicht sogar mein kleines Beispiel umsetzen und mir daran erklären was ich tun muss? Ich wäre euch sehr dankbar.
Liebe Grüße JuSTuS