Hallo zusammen,
zu beginn meines Projektes habe ich mich in das Thema MVC eingelesen und versucht das ganze umzusetzen.
Dabei habe ich ein Model, eine View und einen Controller auf "Ebene" der GUI implementiert. Also Klassen wie GUI_Model, GUI_View und GUI_Controller.
In der GUI_View wird dann ein JFrame erzeugt, dem dann einige Komponenten hinzugefügt werden. Unter anderem erzeuge ich eine Zeichenfläche, die von JPanel erbt.
Jetzt hatte ich mir überlegt, diese Zeichenfläche ebenfalls in 3 Teile zu zerlegen. ZeichenflächeModel, ZeichenflächeView und ZeichenflächeController. Das funktionierte soweit auch ganz gut und ist sehr übersichtlich, da ich nun für die GUI die ActionListener für die Menueinträge im GUI_Controller behandle und den MouseListener für die Zeichenfläche im ZeichenflächenController.
Nun wollte ich gerne eine Statusleiste einfügen und sie auch mit MVC strukturieren. Also habe ich Klassen wie StatusleiteModel, StatusleisteView und StatusleisteController erzeugt und alles implementiert, damit unterschiedliche Texte in der Statusleiste angezeigt werden können.
Mein Problem liegt nun darin, dass sich der Status (Zeichenmodus) ändert, wenn ein entsprechender Menupunkt ausgewählt wurde. Das bedeutet, dass mein GUI_Controller den StatusleistController anweisen müsste, etwas zu tun.
Was ich nun nicht verstehe ist, wie ich dem "übergeordneten" GUI_Controller eine Referenz auf den StatusleisteController gebe.
Muss ich zuerst alle Bestandteile meiner GUI erzeugen und sie dann beim Erzeugen der Objekte GUI_Model, GUI-View und GUI_Controller übergeben, damit sie die richtige Referenz erhält?
Ist die Überlegung, mehrere "Ebenen" der MVC-Struktur zu haben überhaupt richtig oder gibt es immer nur ein Model, eine View und einen Controller im ganzen Programm.
Ich hoffe es ist einigermaßen klar geworden, wo mein Problem liegt und bin für jeden Hinweis dankbar.
zu beginn meines Projektes habe ich mich in das Thema MVC eingelesen und versucht das ganze umzusetzen.
Dabei habe ich ein Model, eine View und einen Controller auf "Ebene" der GUI implementiert. Also Klassen wie GUI_Model, GUI_View und GUI_Controller.
In der GUI_View wird dann ein JFrame erzeugt, dem dann einige Komponenten hinzugefügt werden. Unter anderem erzeuge ich eine Zeichenfläche, die von JPanel erbt.
Jetzt hatte ich mir überlegt, diese Zeichenfläche ebenfalls in 3 Teile zu zerlegen. ZeichenflächeModel, ZeichenflächeView und ZeichenflächeController. Das funktionierte soweit auch ganz gut und ist sehr übersichtlich, da ich nun für die GUI die ActionListener für die Menueinträge im GUI_Controller behandle und den MouseListener für die Zeichenfläche im ZeichenflächenController.
Nun wollte ich gerne eine Statusleiste einfügen und sie auch mit MVC strukturieren. Also habe ich Klassen wie StatusleiteModel, StatusleisteView und StatusleisteController erzeugt und alles implementiert, damit unterschiedliche Texte in der Statusleiste angezeigt werden können.
Mein Problem liegt nun darin, dass sich der Status (Zeichenmodus) ändert, wenn ein entsprechender Menupunkt ausgewählt wurde. Das bedeutet, dass mein GUI_Controller den StatusleistController anweisen müsste, etwas zu tun.
Was ich nun nicht verstehe ist, wie ich dem "übergeordneten" GUI_Controller eine Referenz auf den StatusleisteController gebe.
Muss ich zuerst alle Bestandteile meiner GUI erzeugen und sie dann beim Erzeugen der Objekte GUI_Model, GUI-View und GUI_Controller übergeben, damit sie die richtige Referenz erhält?
Ist die Überlegung, mehrere "Ebenen" der MVC-Struktur zu haben überhaupt richtig oder gibt es immer nur ein Model, eine View und einen Controller im ganzen Programm.
Ich hoffe es ist einigermaßen klar geworden, wo mein Problem liegt und bin für jeden Hinweis dankbar.
Zuletzt bearbeitet: