Auf Thema antworten

Vergegenwärtige dir mal, dass der Controller der Benutzer ist, denn wenn DER einen Button klickt, kontrolliert er das modell.

D.h. am Beispiel eines Buttons wird actionPerformed aufgerufen, im code davon rufst du dann am besten nur einen einzeiler auf um im gui code keine logik unterzubringen.

Wenn das Modell ein Textdokument ist und der Button die markierte Schrift fett machen soll, könnte das so gehen:

[code=Java]

public void actionperformed(ActionEvent e) {

Application.getCurrentDocument().changeSelectedText(Text.BOLD);

}

[/code]

hier kennt die view den controller nicht... um es mit deinen worten zu beschreiben. ABER es löst im modell durch die Änderung ein model-changed Ereignis aus, das die View wiederum benachrichtigen kann neu zu zeichnen - in paintComponent(Graphics g) würde dann die entsprechende Textpassage fett gedruckt, diese wird aufgerufen, weil zb. Application.getCurrentDocument().registerModelListener(this);

dafür sorgt, dass die View bei Änderung des Modells auch benachrichtigt wird.



Oben