ModelViewController

senior_uli

Grünschnabel
Hallo Tutorials.de,

wo soll ich anfangen...ich habe eine GUI konstruiert, die eine Klasse MainFrame hat, in welcher sich ein JFrame befindet. Auf diesem JFrame befinden sich 2 Buttons. Klickt man auf einen der Buttons öffnet sich jeweils ein eigener JDialog, der ein JPanel mit CardLayout hat. Dort werden dann durch "weiter" Buttons alle JPanels angezigt. Was auch toll funktioniert hat!
Zusätzlich gibt es noch einige JDialogs für Impressum etc...aber das ist ja unwichtig.
Jetzt soll ich aber das Model-View-Controller Prinzip anwenden.
Sprich, das View enthält Methoden zum hinzufügen eines ActionListeners(zB MainFrame Zeile 396 ff.) und Methoden zum ändern rein GUI-Spezifischer Manipulationen (zB MainFrame Zeile 417ff.), der Controller fügt dann dem view einen neuen ActionListener hinzu (MainFrameController Zeile18-22) und ruft GUI-Spezifische Methoden aus den View Klassen auf. (zB MainFrameController Zeile 39, 46...).
Model brauche ich noch nicht, weil es sich ja erst mal nur um rein GUI-Spezifische Änderungen handelt und noch keine Werte manipuliert werden sollen.
Das hat für die 2 erwähnten Buttons auch wunderbar funktioniert, die JDialogs mit der ersten Card öffnen sich, auch die Dialogs die durch Drücken eines MenuItems erscheinen sollen gehorchen, ebenfalls die "Schließen" Funktion eines MenuItems.

Auf der Card der Klasse DataSourcing, befindet sich nun ein "weiter" Button, der die nächste Card in diesem JDialog anzeigen soll.
Also habe ich einen DataSourcing Controller gebastelt (genauso wie der MainFrameController), aber der DataSourcingController will einfach nicht auf die Methode "showSpec" in der Klasse DataSourcing zugreifen (DataSourcing Zeile 222 bzw. DataSourcingController Zeile 22).
Mit anderen Worten es passiert auch nichts.
Es ist für mich unbegreiflich warum diese Methode nicht aufgerufen wird...da mir letztes mal super geholfen wurde, belästige ich euch wieder mit einem Problem :-(
Wenn ich auf MVC verzichte und den Code in DataSourcing Zeile 209-213 NICHT auskommentiere, funktioniert es wunderbar.


Meine Main Klasse:
http://de.pastebin.ca/1479704

Mein MainFrame, eine Klasse im "View", welches alle JDialogs mit CardLayout hält. Drückt man zB auf den Button bearbeiten, wird der JDialog mit dem JPanel aus der Klasse DataSourcing sichtbar:
http://de.pastebin.ca/1479709

Main MainFrameController, der die Methoden aus MainFrame zum Öffnen diverser JDialogs aufruft
http://de.pastebin.ca/1479710

DataSourcing, eine Klasse im "View", welches ein JPanel mit einem Button "weiter" hat, der, wenn man auf ihn drückt, das JPanel aus der Klasse DataSpecification im JDialog zeigen sollte:
http://de.pastebin.ca/1479715

DataSourcingController, der die Methode aus DataSourcing zum Anzeigen des JPanels aus SataSpecification aufruft:
http://de.pastebin.ca/1479720

Zur "Vollständigkeit" noch die Klasse DataSpecification:
http://de.pastebin.ca/1479721

Alle anderen Klassen beinhalten ebenfalls wie DataSourcing, DataSpecification JPanels, die in JDialogs angezeigt werden sollen, ich denke die sind hier nicht wichtig soweit.
Zusammengefasst:
-> MainFrame und MainFrameController harmonieren.
-> DataSourcing und DataSourcingController mögen nicht.

Sry dass ich alles nicht besser erklären kann, es ist sicher ein bisschen verwirrend, ich weiß aber echt nicht, wer mir sonst weiterhelfen kann!

Vielen, vielen Dank!
 
Zurück