A
Andrea Riedl
Gast
Hallo,
ich möchte auf folgendes kleines Programm das Observer Pattern anwenden.
Ich habe jeweils drei Klassen erstellt:
Ich arbeite mit Eclipse und das bringt mir immer eine Fehlermeldung bei der addObservers Methode.
Ich weiß auch nicht so recht, was ich in der update Methode reinschreiben soll.Ich habe mir bereits alle gängigen Beispiele aus dem Internet angeschaut, aber die bringen mich nicht weiter.Vielleicht könnt ihr mir ja Tipps geben oder mir helfen, das Observerpattern besser zu verstehen. Die Theorie verstehe ich soweit, aber die Umsetzung ist mir doch etwas schleierhaft.
Danke für Eure Hilfe
Andrea Riedl
[Edit von Beni: Der Quellcode ist dein Freund, nicht dein Feind. Poste ihn doch bitte das nächstemal leserlich]
ich möchte auf folgendes kleines Programm das Observer Pattern anwenden.
Code:
public class FensterTest extends JFrame {
public FensterTest () {
super ("Eigengrundriss") ;
JPanel cp = new JPanel ();
setContentPane(cp);
repaint();
}
public void paint(Graphics g) {
Graphics2D g2d = (Graphics2D)g;
g2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
Shape rect = new Rectangle2D.Float(250,50,300,500);g2d.setPaint(Color.white);
g2d.fill(rect);
g2d.draw(rect);
}
public static void main(String argv[]){
FensterTest eig = new FensterTest();
eig.setSize(800,600);
eig.setVisible(true);
}
}
Code:
public class FensterModel extends Observable{
public void paint(Graphics g) {
Graphics2D g2d = (Graphics2D)g;
g2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
Shape rect = new Rectangle2D.Float(250,50,300,500);
g2d.setPaint(Color.white);
g2d.fill(rect);
g2d.draw(rect);
setChanged();
notifyObservers();
}
}
Code:
public class FensterMain {
public static void main(String[] args) {
FensterModel fm = new FensterModel();
FensterViewObserver fvo = new FensterViewObserver();
fm.addObserver(fvo); // Hier bekomme ich die Fehlermeldung
FensterViewObserver fenster = new FensterViewObserver();
fenster.setSize(800,600);
fenster.setVisible(true);
}
}
Code:
public class FensterViewObserver extends JFrame implements Observer{
public FensterViewObserver (){
super ("Eigengrundriss") ;
JPanel cp = new JPanel ();
setContentPane(cp);
}
public void update(Observable obs, Object arg){
repaint();
}
}
Ich weiß auch nicht so recht, was ich in der update Methode reinschreiben soll.Ich habe mir bereits alle gängigen Beispiele aus dem Internet angeschaut, aber die bringen mich nicht weiter.Vielleicht könnt ihr mir ja Tipps geben oder mir helfen, das Observerpattern besser zu verstehen. Die Theorie verstehe ich soweit, aber die Umsetzung ist mir doch etwas schleierhaft.
Danke für Eure Hilfe
Andrea Riedl
[Edit von Beni: Der Quellcode ist dein Freund, nicht dein Feind. Poste ihn doch bitte das nächstemal leserlich]