Wo/Wie Event Listener

Status
Nicht offen für weitere Antworten.

Athropos

Neues Mitglied
Hi!

Für ein Projekt habe ich eine GUI zusammengeschustert.
Konkret habe ich ein Borderlayout, welches ich mit Containern befülle. In diesen Containern verwende ich jeweils andere Layoutmanager. Rein Optisch bin ich mit dem Ganzen zufrieden.
Der Übersichtlichkeit beim Programmieren habe ich für jeden "container" eine eigene Klasse geschrieben.

Nur jetzt ist mein Problem folgendes: die ganzen Container sollen miteinander und untereinander interagieren, sprich wenn ich bei einem Container einen Button anklicke, soll im anderen Container sich was ändern.

Könnt ihr mir bitte Tips geben, wo/wie ich welche EventListener passenderweise hinschreib um das gewünschte Ergebnis zu erhalten?

thx & lg,
Athropos
 
G

Guest

Gast
Hallo,

Athropos hat gesagt.:
Hi!

Für ein Projekt habe ich eine GUI zusammengeschustert.
Konkret habe ich ein Borderlayout, welches ich mit Containern befülle. In diesen Containern verwende ich jeweils andere Layoutmanager. Rein Optisch bin ich mit dem Ganzen zufrieden.
Der Übersichtlichkeit beim Programmieren habe ich für jeden "container" eine eigene Klasse geschrieben.

Nur jetzt ist mein Problem folgendes: die ganzen Container sollen miteinander und untereinander interagieren, sprich wenn ich bei einem Container einen Button anklicke, soll im anderen Container sich was ändern.

Könnt ihr mir bitte Tips geben, wo/wie ich welche EventListener passenderweise hinschreib um das gewünschte Ergebnis zu erhalten?

thx & lg,
Athropos


... die Events willst du wohl maßgeschneidert für deine Aufgabe. Also mußt du selbst Events und Listener bereitstellen. Z.B.
Code:
package exi.Terra1;
//zu senden wenn via Doppelklick eine Basis gewählt wurde

public class Event_Selektiert extends java.util.EventObject {
        private int Nr=-1; 

        public Event_Selektiert(myFarbPanel source, int ein){
		super(source);
                Nr = ein;
	}
        public int getNr() {return Nr;}
}

Code:
package exi.Terra1;

public interface Listener_Selektiert extends java.util.EventListener {
    public void Selektiert_ActionChoosen(Event_Selektiert evt);
}

nun müssen aber auch beide Programmteile wissen das sie Events austauschen sollen. Dafür muß der Sender passende add-Methoden beritstellen:
Code:
    protected void fireEvent_Selektiert(int ein){
	Object[] listeners = listenerList.getListenerList();
	Event_Selektiert event = null;
	for (int i=listeners.length-2; i>=0; i-=2)
		if (listeners[i]== Listener_Selektiert.class){
			if (event == null)
				event = new Event_Selektiert(this, ein);
				((Listener_Selektiert) listeners[i+1]).Selektiert_ActionChoosen(event);
		}
    }
    public void addListener_Selektiert(Listener_Selektiert aListener){
	listenerList.add(Listener_Selektiert.class, aListener);}
    public void removeListener_Selektiert(Listener_Selektiert aListener){
	listenerList.remove(Listener_Selektiert.class, aListener);}

Und der Empfänger muß gesagt bekommen, daß er zuhören soll und was ggf. zu tun sei. Das mache ich gewohntheitsmäßig dort wo ich alle andere Aktionen erkläre.
Code:
                myPanel.addListener_Selektiert(new Listener_Selektiert() {
                    public void Selektiert_ActionChoosen(Event_Selektiert e){
                        int puffer = e.getNr();
                        for (int i=0; i<PanelListe.size(); i++) 
                            if (i!=puffer) ((myFarbPanel)PanelListe.get(i)).setSelektiert(false);
                }});

Bei der Bezeichnung ist man relativ frei. Aber aus Erfahrung habe ich gelernt ein stures System einzuhalten. Schlüsselbegrifft wie 'fireEvent', 'addListener' behalte ich bei. Und dann füge ich meine Bezeichnung mit einem Unterstrich dazu.

tschüs
exi
 
G

Guest

Gast
Hallo,

und beinahe hätte ich es vergessen ;-) Natürlcih muß der Sender auch entscheiden wann der Event geschickt werden soll. Das geht mit einer direkten Anweisung wo du fireEvent befiehlst. Z.b. innerhalt eines ActionListeners:

Code:
     Selektor.addActionListener(new ActionListener(){public void actionPerformed(ActionEvent e){
                fireEvent_Selektiert(Index);
         }});

tschüs
exi
 

Marco13

Top Contributor
Ausführliche Antworten sind zwar manchmal ganz schön, aber... in diesem Fall wäre IMHO als erste Antwort ein "Das kommt darauf an...." abgebrachter gewesen :wink:

Es kommt darauf an....
- welche der Components welche andere Component kennt
- welche Aktionen durchgeführt werden sollen
- ob es ein Datenmodell gibt
-....

(Es macht z.B. nur bedingt Sinn (nicht "keinen Sinn", aber 'nur bedingt Sinn'!!!) eine Component mit einem eigenen, auf Basis von EventObject und EventListener zusammengstrickten Klasse über etwas zu informieren, was man ihr (weil sie evtl. schon bekannt ist) auch direkt über eine Methode sagen könnte...)
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
topi WindowAdapter / Listener / Event Java Basics - Anfänger-Themen 4
B OOP Eigener Event-Listener erstellen Java Basics - Anfänger-Themen 4
Fiedelbambu fxml onAction event Java Basics - Anfänger-Themen 7
T FXMl Event has not a Slot Java Basics - Anfänger-Themen 1
E Methoden Action Event wird nicht vollständig ausgeführt Java Basics - Anfänger-Themen 3
Tommy135 Event erstellen Java Basics - Anfänger-Themen 7
CptK Methoden Event bei gedrückter Maustaste immer wieder ausführen Java Basics - Anfänger-Themen 1
CptK Klassen Event bei gedrückter Maus immer wieder mit Pause ausführen Java Basics - Anfänger-Themen 2
L Event schmeißen Java Basics - Anfänger-Themen 1
F In Eclipse Haltepunkt bei Event setzen? Java Basics - Anfänger-Themen 1
T Übungsaufgabe Event Handling Java Basics - Anfänger-Themen 0
M Action Event auf Textfield legen Java Basics - Anfänger-Themen 18
V Button/Event wird nicht ausgeführt, was tun? Java Basics - Anfänger-Themen 2
J Keyboard Event auch ohne Fokus mitbekommen Java Basics - Anfänger-Themen 2
D Java Eclipse cannot be cast to java.awt.event.ItemListener Java Basics - Anfänger-Themen 3
IngoF Welches Event kommt wann? Java Basics - Anfänger-Themen 8
A Key Event - Abfrage von 2 gedrückten Tasten Java Basics - Anfänger-Themen 6
E Event gesucht Java Basics - Anfänger-Themen 1
G Button Event Java Basics - Anfänger-Themen 6
Thallius Hidden Feature über Key Event starten Java Basics - Anfänger-Themen 4
A Labels Inner JButton Event Erstellbar? Java Basics - Anfänger-Themen 3
F Erste Schritte Aktuelles Fenster durch Event schließen Java Basics - Anfänger-Themen 3
D Button action Event einblenden/ausblenden Java Basics - Anfänger-Themen 6
U Threadsafe Event-Handling Java Basics - Anfänger-Themen 2
C Klassen NullPointerException beim Event Handling in GUI Java Basics - Anfänger-Themen 8
P ActionListener Action Event Java Basics - Anfänger-Themen 5
J Erste Schritte import awt.* ;awt.event.*; Java Basics - Anfänger-Themen 3
T event und while-schleife Java Basics - Anfänger-Themen 26
L Null Pointer Exception bei Focus Event bei einem JTextField Java Basics - Anfänger-Themen 2
M Während event einen anderen event ausführen?? Java Basics - Anfänger-Themen 3
S Event aus anderer Klasse als Auslöser Java Basics - Anfänger-Themen 5
M Event erstellen Java Basics - Anfänger-Themen 6
D Eigenes Event beim TimeOut Java Basics - Anfänger-Themen 2
D Auf Event warten Java Basics - Anfänger-Themen 4
I AWS Event Notification Service Sample ausführen... Java Basics - Anfänger-Themen 7
M JList Event Java Basics - Anfänger-Themen 5
Houly while Schleife im ActionPerformed Event Java Basics - Anfänger-Themen 8
R eigenen Event schreiben Java Basics - Anfänger-Themen 16
S Kein Event bei Click auf JComboBox Java Basics - Anfänger-Themen 4
N paint methode statt Event-Handling-Methode Java Basics - Anfänger-Themen 3
Q Eigenes Event feuern Java Basics - Anfänger-Themen 5
H2SO3- dreieck, bild --> maus klick event. Wie gehts? Java Basics - Anfänger-Themen 10
R Event in eigener Klasse implementieren ? Java Basics - Anfänger-Themen 8
B Applet: Event-Handling-Methode in start- bzw. paint-Methode Java Basics - Anfänger-Themen 7
D Window resize Event ? Java Basics - Anfänger-Themen 5
D Bei Event soll Instanz sich selbst löschen Java Basics - Anfänger-Themen 4
D Event mit n-Button8s) von einem Panel Java Basics - Anfänger-Themen 9
GilbertGrape Eigenes Event? Java Basics - Anfänger-Themen 2
A Synchronisierung oder gibt es das onChange event? Java Basics - Anfänger-Themen 4
J Automatisch Button drücken/Event ausführen? Java Basics - Anfänger-Themen 6
G Button Action Event starten Java Basics - Anfänger-Themen 4
G Methode nicht im Event-Dispatcher-Thread starten? Java Basics - Anfänger-Themen 2
F Doppelklick-Event auf JTree Java Basics - Anfänger-Themen 5
N Event auf JTabbedPane abfragen ? Java Basics - Anfänger-Themen 8
G Event Handler Java Basics - Anfänger-Themen 7
T button event Java Basics - Anfänger-Themen 3
P Raw-Key-Event Java Basics - Anfänger-Themen 4
Q ActionListener event bei JPanels Java Basics - Anfänger-Themen 5
J Event-Handling geht nicht Java Basics - Anfänger-Themen 6
G Button event problem Java Basics - Anfänger-Themen 24
B Eigenes Event schreiben Java Basics - Anfänger-Themen 7
D MouseLister und Identifikation des Event - Buttons Java Basics - Anfänger-Themen 4
G start-oder paint-Methode anstatt Event-Handling-Methode? Java Basics - Anfänger-Themen 3
T java.awt.event.WindowAdapter Java Basics - Anfänger-Themen 2
B Event-Actionlistener(Def) Java Basics - Anfänger-Themen 6
G GUI Event Handling Java Basics - Anfänger-Themen 5
M Event auslösen (unsinnig gestellt - ignorieren) Java Basics - Anfänger-Themen 4
M [SOLVED]Swing Event Management Java Basics - Anfänger-Themen 7
N Runtime.exec und Key event Java Basics - Anfänger-Themen 2
C Klasse muss auf Event in einer anderen Klasse reagieren Java Basics - Anfänger-Themen 7
G JTable - Event - MVC Java Basics - Anfänger-Themen 10
J Event-Hilfe Java Basics - Anfänger-Themen 4
T Event zu bestimmter Uhrzeit auslösen ? Java Basics - Anfänger-Themen 5
S MausKlickZähler - Event Problem Java Basics - Anfänger-Themen 2
M Kommunikation zwischen GUI und Event -Klasse Java Basics - Anfänger-Themen 3
C mouseDown (Event e, int x, int y) rechts oder linksklick ? Java Basics - Anfänger-Themen 10
D if (event.target instanceof TextField) Java Basics - Anfänger-Themen 2
T Variable durch Action Listener ändern Java Basics - Anfänger-Themen 2
D String value change listener Java Basics - Anfänger-Themen 2
L Problem mit Listener Java Basics - Anfänger-Themen 0
P Listener registrieren Java Basics - Anfänger-Themen 40
Salo JTabel Selection listener Bsp. Java Basics - Anfänger-Themen 3
W JLabel, Farbe durch Listener ändern Java Basics - Anfänger-Themen 6
M Listener für Button - Wert von Variablen verändern Java Basics - Anfänger-Themen 14
V JTable welcher Listener ? Java Basics - Anfänger-Themen 7
J Verständnis Problem Java-Listener. Java Basics - Anfänger-Themen 59
M Compiler-Fehler Using action listener Java Basics - Anfänger-Themen 1
F Listener schreiben Java Basics - Anfänger-Themen 1
P Eigene Knöpfe mit eigenem Listener Java Basics - Anfänger-Themen 5
B Listener beim Laden (deserialize) wieder hinzufügen bzw. mitspeichern? Java Basics - Anfänger-Themen 3
J Listener Java Basics - Anfänger-Themen 4
kaoZ Best Practice Verständnisfrage Listener bei lokalen Objekten Java Basics - Anfänger-Themen 8
F eigenes Listener Pattern mit Interface Java Basics - Anfänger-Themen 1
llabusch Kombinationsfeld - LISTENER Java Basics - Anfänger-Themen 0
S Eigenen Listener zu eigenen Button! Java Basics - Anfänger-Themen 5
S Listener reagieren nicht mehr Java Basics - Anfänger-Themen 3
O Laufender Timer+Action Listener in Thread VS isAlive() Java Basics - Anfänger-Themen 4
E Mein eigener Listener (Hilfe gesucht) Java Basics - Anfänger-Themen 2
K On Click listener Problem Java Basics - Anfänger-Themen 4
L JTextField/Listener Input Problem Java Basics - Anfänger-Themen 2

Ähnliche Java Themen

Neue Themen


Oben