Hey, ich hab folgendes Problem. Mein Subjekt gibt immer zurück, dass das flag das von setChanged() gesetzt wird false sei.
Das Subjekt und die Observer werden in der Instanz von MainFrame erzeugt. (Das funktioniert auch alles richtig)
Ich möchte aber, dass wen die Observer benachrichtigt werden (in MainFrame wurde ein Button Event ausgelöst) ich das auch in der Klasse Main weis, um von dort aus mit dem Wert einer TextBox eine neue Klasse zu erzeugen.
Ich muss ja aber wissen, wann der Button gedrückt wurde und das müsste doch der Moment sein wo setChaged()==true sein müsste, oder etwa nicht? Nur bei mir ist das nie der Fall? Ist der Moment vllt zu kurz und der Thread bekommt es nicht mit?
Wenn ja, wie kann ich das Problem sonst lösen?
Grüße
Java:
public class Main implements Observer {
public static void main(String[] args) {
final MainFrame frame = new MainFrame();
frame.main(null);
Thread t = new Thread(){
@Override public void run(){
while(true){
if(frame.teller.hasChanged()){
System.out.println("x");
// [...........]
}
Java:
public void addProgress(Object object){
setChanged();
notifyObservers(object);
}
Das Subjekt und die Observer werden in der Instanz von MainFrame erzeugt. (Das funktioniert auch alles richtig)
Ich möchte aber, dass wen die Observer benachrichtigt werden (in MainFrame wurde ein Button Event ausgelöst) ich das auch in der Klasse Main weis, um von dort aus mit dem Wert einer TextBox eine neue Klasse zu erzeugen.
Ich muss ja aber wissen, wann der Button gedrückt wurde und das müsste doch der Moment sein wo setChaged()==true sein müsste, oder etwa nicht? Nur bei mir ist das nie der Fall? Ist der Moment vllt zu kurz und der Thread bekommt es nicht mit?
Wenn ja, wie kann ich das Problem sonst lösen?
Grüße