Hallo Leute, ich hab mal wieder ein kleines Problem, dass sich mir nicht erschließt.
Ich habe 2 unterschiedliche Observable Klassen und eine andere Klasse soll beide beobachten. Wenn ich jetzt in der Observable loslege und meine gewünschte Liste ändere, setz ich das Flag mit setChanged() und informiere alle Observer. Nur dummerweise, kommt beim Observer selber nie was an, obwohl ich laut meiner Testausgaben am notifyObservers(...) vorbeikomme.
Die Observer Klasse ist zu dem auch der einzige Observer des Observable. Und die Testausgabe countObservers liefert mir auch den Wert 1 und da ich sonst keine Klass ehinzugefügt habe, ist das Ergebnis ja schlüssig. Aber seltsamerweise kommt bei der update Funktion meines Observers nie was an... nur die Änderungen der anderen Observable Klasse werden angenommen... kann man mit einer Klasse nur ein Objekt zur Zeit beobachten? oder woran kann das liegen?
[JAVA=42]
public UserRoom( ...){
games = new GameManagement();
games.addObserver(this);
users = new UserManagement();
initializeBoxes();
...
}
public class GameManagement extends Observable{
......
Request r;
public void addActiveGame(Game game){
activeGames.add(game);
// creates a request to notify the activeGamesList
r = new Request(RequestType.ACTIVEGAME);
r.set(RequestKey.ADDACTIVEGAME,true);
setChanged();
notifyObservers(r);
}
public void removeActiveGame(Game game){
activeGames.remove(game);
// creates a request to notify the activeGamesList
r = new Request(RequestType.ACTIVEGAME);
r.set(RequestKey.ADDACTIVEGAME,false);
setChanged();
notifyObservers(r);
}
}
[/code]
Ich habe 2 unterschiedliche Observable Klassen und eine andere Klasse soll beide beobachten. Wenn ich jetzt in der Observable loslege und meine gewünschte Liste ändere, setz ich das Flag mit setChanged() und informiere alle Observer. Nur dummerweise, kommt beim Observer selber nie was an, obwohl ich laut meiner Testausgaben am notifyObservers(...) vorbeikomme.
Die Observer Klasse ist zu dem auch der einzige Observer des Observable. Und die Testausgabe countObservers liefert mir auch den Wert 1 und da ich sonst keine Klass ehinzugefügt habe, ist das Ergebnis ja schlüssig. Aber seltsamerweise kommt bei der update Funktion meines Observers nie was an... nur die Änderungen der anderen Observable Klasse werden angenommen... kann man mit einer Klasse nur ein Objekt zur Zeit beobachten? oder woran kann das liegen?
[JAVA=42]
public UserRoom( ...){
games = new GameManagement();
games.addObserver(this);
users = new UserManagement();
initializeBoxes();
...
}
public class GameManagement extends Observable{
......
Request r;
public void addActiveGame(Game game){
activeGames.add(game);
// creates a request to notify the activeGamesList
r = new Request(RequestType.ACTIVEGAME);
r.set(RequestKey.ADDACTIVEGAME,true);
setChanged();
notifyObservers(r);
}
public void removeActiveGame(Game game){
activeGames.remove(game);
// creates a request to notify the activeGamesList
r = new Request(RequestType.ACTIVEGAME);
r.set(RequestKey.ADDACTIVEGAME,false);
setChanged();
notifyObservers(r);
}
}
[/code]