Portal > Foren > Java > Allgemeine Java-Programmierung > Verschiedene Views - wo Listener registrieren?
Antwort
 
Themen-Optionen
Alt 11.11.2005, 16:41 Nach oben    #1
Neuer Benutzer
 
Registriert seit: 02.11.2005
Beiträge: 9
Standard Verschiedene Views - wo Listener registrieren?

Hallo,

ich habe eine Frage bezüglich Listeners.

Ich habe ein Objekt der Klasse Persons, das eine Liste von Person-Objekten enthält. Diese Klasse dient als Model.
Nun stelle ich über verschiedenen JTables (oder andere Views) entweder die ganze Liste der Person-Objekte, nur ein paar ausgewählte oder nur ein einziges Objekt der Liste dar. (Also pro Person-Attribute, Name, Alter, etc. wird eine Spalte angezeigt)

Die Zuordnung Zeile <-> Objekt bilde ich bei der JTable mit einer ArrayList. Wobei der Index die Zeile angibt und als Wert eine Referenz auf ein Person-Objekt der Liste gespeichert ist.

Mit z.B. setValue kann ich ja nun die Attribute eines Person-Objekts ändern.
Da ich eine Referenz verwende, ändert sich ja das Person-Objekt der Liste und alle 'JTable-Views' haben Zugriff auf die Änderung, aber wie benachrichtige ich die Views davon, dass sich ein Objekt geändert hat und sie es neu aus dem Model lesen müssen.

Muss ich da jede JTable (View) als Listener bei jedem Person-Objekt anmelden. Oder muss ich das Persons-Objekt, also das Model, das die Personenliste enthält als Listener für alle Person-Objekte anmelden und die Views melden sich nur bei dem Persons-Objekt als Listener an. Oder macht man das vollkommen anders.

Weiß jemand wie so etwas gelöst wird?
NewYork ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 11.12.2005, 18:54 Nach oben    #2
Benutzer
 
Registriert seit: 13.08.2005
Beiträge: 67
Standard

Da Du noch nichts gegenteiliges geschrieben hast gehe ich davon aus dass DU das Problem noch hast.

Bin gerade über deinen Beitrag gestolpert!

Ich gehe davon aus dass Du das ganze gerne per MVC gelöst haben willst.

Objekt 1 ist dein Personen Objekt in der Liste;
(extends Observable)

Objekt 2,3 und 4 sind deine Views.
(implements Observer)

Du musst jetzt die Views dem Objekt 1 bekannt machen.
object1.addObserver(object2);
object1.addObserver(object3);
object1.addObserver(object4);

in der Setter von Objekt 1 nimmst Du zuerst die Änderungen vor und dann rufts Du folgenden Code auf:

setChanged();
notifyObservers();

in den Views implementierst Du entsprechend in der Update Methode die Funktionalität zum Anzeigen der Daten.

Was Du jetzt aber noch realisieren musst ist dass wenn Du ein anderes Objekt in deinen Masken (Listen,....) beobachtest dass Du die Observer Referenzen bei dem nicht mehr beobachteten Objekt entfernst.

Wenn Du später mit einem Observer Objekt mehrere Observable Objekte beobachtest dann kannst Du zur Unterscheidung ein beliebiges Objet zur notifyObservers Funktion mitgeben.

Das sollte DIr mal einen Anfagn bieten.
Wenn Du noch Fragen hast postie diese einfach hier.
Robinson ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 13.12.2005, 09:52 Nach oben    #3
Neuer Benutzer
 
Registriert seit: 02.11.2005
Beiträge: 9
Standard

Danke für Deine Antwort!
NewYork ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Antwort

Lesezeichen


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Listener für JMenu bzw. JMenuItem Ben Desktop-Applikationen und Grafik 10 27.09.2005 21:39


Alle Zeitangaben in WEZ +2. Es ist jetzt 13:17 Uhr.


Powered by vBulletin® Version 3.7.3 (Deutsch)
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44