Ich habe einen Java JFrame mit einem JPanel. Innerhalb dieses JPanels gibt es zwei getrennte JPanels. Wenn der Benutzer auf eine Schaltfläche im ersten JPanel klickt, muss eine Nachricht an die andere JPanel gesendet werden, die darauf hinweist, auf welche Schaltfläche geklickt wurde. Was ist der einfachste Weg, Nachrichten zwischen solchen Objekten zu senden?
Für mKorbel (und das ursprüngliche Poster):
Was ich empfehle, ist eine lockere Kopplung, dass die eine JPanel keine Kenntnis von der anderen JPanel hat und dass alle Verbindungen durch irgendeine Art von Kontrolle zustande kommen. Zum Beispiel, um etwas von Ihrem Code zu leihen:
CopyTextNorthPanel2.java
%Vor%CopyTextSouthPanel2.java
%Vor%CopyTextControl2.java
%Vor%CopyText2.java
%Vor%Sie könnten ein benutzerdefiniertes Ereignis erstellen und einen oder mehrere Listener an dieses Ereignis anhängen.
Der richtige Weg zur Implementierung besteht darin, dass der Button ActionListener das Ereignis auslöst und dann Ihre beiden Panels Listener für dieses Ereignis sind.
am Anfang Ihrer Klasse
%Vor%Aber wirklich, ich denke, es ist Zeit, über Designmuster nachzudenken. Was Sie beschreiben, ist ein perfekter Kandidat für das Beobachter -Muster und möglicherweise für das Befehl Muster
Tags und Links java user-interface swing oop jpanel