melmager
Erfahrenes Mitglied
Also ich habe folgendes Problem zu lösen :
Ich habe mehrere Textfelder die ein Event auslösen - soweit so normal - nur in der Classe die davon informiert wird kann es zu Ereignissen kommen aus einer andren Quelle die es nötig machen den Text im Textfeld zu ändern.
Ich muss also auch Actions erzeugen auf die dann die Eingabefelder hören um sie zu actualisieren.
Sprich es gibt Quellen die ein Action auslösen aber die auch auf welche hören sollen - wie bei einer mailinglist
Jetzt die frage wie implementiert man sowas am geschicktesten ?
mein derzeitiger Ansatz ist der:
erstmal eine Eventclasse
dann braucht man ja noch ein Interface für die geneigten zuhörer
Jetz kommt die Mailinglist classe - jeder kann was einstellen und jeder wird informiert der auf der liste ist
und da stocke ich grade
klar muss die classe auf Actions hören um von den Eingabefeldern informiert zu werden
und ich müsste nu den eigenen Event erzeugen - auch klar - aber wie verteile ich den am besten ?
nutzen von
Toolkit.getDefaultToolkit().getSystemEventQueue().postEvent()
oder gleich selber in der OfficeClass die Listener aufrufen ?
die zweite Version würde anbeiten das ich in der Officeclasse schon vorsortieren könnte wer unbedingt informiert gehört.
wenn ich über dieQueue gehe müsste der listener seine nachrichten rausfiltern - auch kein Thema
oder ganz von swing weg und für eigene nachrichten auf observer aufsetzen ?
Ich habe mehrere Textfelder die ein Event auslösen - soweit so normal - nur in der Classe die davon informiert wird kann es zu Ereignissen kommen aus einer andren Quelle die es nötig machen den Text im Textfeld zu ändern.
Ich muss also auch Actions erzeugen auf die dann die Eingabefelder hören um sie zu actualisieren.
Sprich es gibt Quellen die ein Action auslösen aber die auch auf welche hören sollen - wie bei einer mailinglist
Jetzt die frage wie implementiert man sowas am geschicktesten ?
mein derzeitiger Ansatz ist der:
erstmal eine Eventclasse
Code:
class TextMessageEvent extends EventObject {
enum TextType {
LYRIC,WORK,CREATOR,SONGNAME;
}
String message;
TextType typ;
public TextMessageEvent(Object source, TextType id, String text) {
super(source);
this.typ = id;
this.message = text;
}
}
Code:
public interface TextMessageListener extends EventListener {
public newMessage(TextMessageEvent msg);
}
Jetz kommt die Mailinglist classe - jeder kann was einstellen und jeder wird informiert der auf der liste ist
und da stocke ich grade
Code:
class TextMessageOffice implements ActionListener {
// ActionListener Interface
public void actionPerformed( ActionEvent e ) {
}
}
und ich müsste nu den eigenen Event erzeugen - auch klar - aber wie verteile ich den am besten ?
nutzen von
Toolkit.getDefaultToolkit().getSystemEventQueue().postEvent()
oder gleich selber in der OfficeClass die Listener aufrufen ?
die zweite Version würde anbeiten das ich in der Officeclasse schon vorsortieren könnte wer unbedingt informiert gehört.
wenn ich über dieQueue gehe müsste der listener seine nachrichten rausfiltern - auch kein Thema
oder ganz von swing weg und für eigene nachrichten auf observer aufsetzen ?