Guten Tag,
ich stehe derzeit vor einem Dilemma und weiß nicht so recht wie ich es aufbauen soll.
Ich habe eine GUI mit Tabs gebaut. Diese Tabs stehen in einer Main-View, in der auch eine Menüleiste angehängt ist. Diese Tabs sind auch unter der Main-View implementiert.
Jeder Tab hat seinen eigenen Aufbau in dem darauf abgebildeten JPanel. Deshalb entschied ich mich dazu die JPanels jeweils als eigene Klasse aufzubauen, die jeweils JPanel erweitern. Für jedes Panel habe ich nach MVC auch jeweils eine eigene Controller-Klasse erstellt.
Der Konstruktor der Controller-Klasse der Main-View erzeugt gleichzeitig in sich auch die Controller für die Panels, sodass diese dann auch erstellt werden.
Nun aber der Knackpunkt: Die in der Main-View erzeugten Tabs müssen direkt auf das Ziel-Panel referenzieren. Da meine Panels aber eigene Klassen mit eigenen Controller sind, müsste ich ja dann in der Main-View die Controller-Klassen deklarieren, was aber verdammt schmutzig und eigentlich gegen MVC ist. Andererseits kann ich dann aber auch nicht die Panels dranhängen.
Hat jemand einen Ansatz, wie sich dieses Problem lösen lässt?
ich stehe derzeit vor einem Dilemma und weiß nicht so recht wie ich es aufbauen soll.
Ich habe eine GUI mit Tabs gebaut. Diese Tabs stehen in einer Main-View, in der auch eine Menüleiste angehängt ist. Diese Tabs sind auch unter der Main-View implementiert.
Jeder Tab hat seinen eigenen Aufbau in dem darauf abgebildeten JPanel. Deshalb entschied ich mich dazu die JPanels jeweils als eigene Klasse aufzubauen, die jeweils JPanel erweitern. Für jedes Panel habe ich nach MVC auch jeweils eine eigene Controller-Klasse erstellt.
Der Konstruktor der Controller-Klasse der Main-View erzeugt gleichzeitig in sich auch die Controller für die Panels, sodass diese dann auch erstellt werden.
Nun aber der Knackpunkt: Die in der Main-View erzeugten Tabs müssen direkt auf das Ziel-Panel referenzieren. Da meine Panels aber eigene Klassen mit eigenen Controller sind, müsste ich ja dann in der Main-View die Controller-Klassen deklarieren, was aber verdammt schmutzig und eigentlich gegen MVC ist. Andererseits kann ich dann aber auch nicht die Panels dranhängen.
Hat jemand einen Ansatz, wie sich dieses Problem lösen lässt?
Zuletzt bearbeitet: