AWT Observer mit AWT

Rudolf

Bekanntes Mitglied
Hi

es hakt an einer Stelle.

Es werden drei Fenster erstellt, die jeweils einen Button "Registrieren", "Deregistrieren", "Up" und "Down" und ein Zahlenfeld haben. Beim Klick auf Up und Down soll die Zahl im Textfeld inkrementiert bzw dekrementiert werden. Wenn ein anderes Fenster "registriert" ist, soll es bei Veränderungen in den anderen Fenstern "horchen" und falls eine Zahl verändert wurde, soll es direkt bei sich selber übernehmen.

Bei mir funzt es mitlerweile einigermaßen. Leider aktualisiert es nicht das Textfeld sofort, nachdem ich eine Zahl erhöhe oder erniedige. Die Zahl nur aktualisiert, wenn ich auf Register, oder Deregister klicke. Vll einer von euch eine Idee: http://www.rudos.de/stuff/observer-100427-1425.tar.gz
 

Rudolf

Bekanntes Mitglied
Und was ist

Java:
	protected void register() {
		this.counter.addObserver(this);
		this.refresh();
	}
 

Michael...

Top Contributor
Sorry, hatte übersehen, dass das erst bei Knopfdruck stattfindet.
Werde mir das bei Gelegenheit mal genauer anschaun... falls sich in der Zwischenzeit nicht ein anderer findet
 

Michael...

Top Contributor
Falls die Lösung noch nicht bekannt ist:
Beim Aufruf von notifyObservers(...) wird geprüft, ob das Observable Objekt als geändert markiert ist (boolean hasChanged()), falls nicht werden die Observer auch nicht benachrichtigt.
Deshalb muss beim Inkrementieren und Dekrementieren der Zählvariable das Objekt mit setChanged() markiert werden.
Hat ein bisschen gedauert bis ich draufgekommen bin, da ich für solche Zwecke eigene Klassen und Interfaces verwende. Observer und Observable wären mir zuviel Overhead.
 

Ähnliche Java Themen


Oben