ich versuch gerade mich mit der Logik von VMC vertraut zu machen und komme gerade mal wieder nicht weiter.
Hab schon gegooglet, FAQ gewälzt, durch die Tuts gekämpft und finde trotzdem keine Antwort auf meine Frage.
Bisher habe ich die JTextfields meiner JDialogs immer mit einer inneren ActionListener Klasse ausgelesen.
Nun habe ich rausgefunden, dass es eleganter ist eine extra Klasse für den ActionListener zu haben.
Gesagt, getan. Ich hab eine extra Klasse, die auch prima auf alle Buttons richtig reagiert....solange ich nicht versuch darüber JTextfields aus der JDialog auszulesen. Wäre aber zu einer Objekterzeugung nötig, die Infos in der ActionListener-Klasse zu haben.
Mit einfach nur date.getText() geht da nichts mehr.
Muss ich den der ActionListener Klasse alle Inhalte mit übergeben um die dann da weiterzuverarbeiten? Kann ich mir kaum vorstellen.
Über ein paar hilfreiche Antworten würde ich mich freuen. Sonst muss ich weiter innere Klassen schreiben.... :cry:
Viele Grüße,
Matthias
Du meinst vermutlich MVC?
Oft bietet es sich an für jeden Button einen eigenen ActionListener zu verwenden. Das macht man dann mit einer anonymen inneren Klasse.
naja, da mit den annoynmen Klassen habe ich ja bisher auch gemacht.
Ich dachte nur, dass es praktischer wäre, wenn man für mehrer JDialogs eine ActionListener Klasse schreiben würde.
Und die wird einfach in den JDialogs initialisiert und behandelt quasi alle Button Vorkommnisse der JDialogs.
Dann muss man das bei mehreren JDIalogs nicht ständig neu schreiben, sondern hat ein zentrale Stelle wo man neue Buttons einträgt.
Ist das denn nicht gut? Oder macht man das nicht?
Vielleicht bin ich auch einfach zu viel Anfänger...
Naja, ich werde noch besser
Erstens ist ein großer ActionListener der Buttons unterscheiden mus IMO Fehleranfälliger, und zweites sind Controller und View in vielen Fällen einfach zu start verknüpft um sinnvoll trennen zu können.
Du brauchst ja dann Referenzen im Listener auf alle Komponenten die du anfassen musst.
Stimmt, da hast du wohl schon Recht.
Ich hielt das halt für eine gut Idee.
Aber jetzt hab ich ja schon das Problem, dass ich wohl theoretisch dem ActionListener alle Daten zur Initilaisierung mit übergeben muss, und dann kann ich es auch über ein innere anonyme machen
Aber na gut. Ist gar nicht so einfach mit dem Design, wenn man sich an Standards halten will.
Gibt es da was im Netz oder Bücher in die Richtung?
Das Problem das man hier hat ist folgendes:
SUN trennt in Swing MVC. zB JTable/Controller Renderer/View TableModel/Model.
Im Client Code ist der Renderer allerdings für den Benutzer des Codes transparent und die JTable selbst wird als View behandelt.
Hier kommt man nun sehr schnell an den Punkt wo eine echte Trennung zwischen Controller und View illusorisch ist.
In der Praxis wird also oft bei allem was nicht selbst gezeichnet wird, sondern auf Swing Komponenten zurückgreift, Controller und View verschmolzen.
Schau dir mal das Interface "Action" und die Klasse "AbstractAction" an. Damit erreichst du zwar auch keine 100% Trennung, aber wenigstens eine hohe Trennung von Aktion - und Darstellung (Actions können Buttons oder Menüitems übergeben werden).
mmhhhh...klingt alles sehr verwirrend.
Da habe ich wohl noch einiges vor mir.
Aber immerhin habe ich es einigermaßen verstanden.
Vielen Dank für deine Hilfe, SO bekommt man wenigstens Einsicht in gängige Programmierpraxis.
VG,
Matthias
AAAHHHHH
Immer wieder tolll solche Foren. In euren paar Antworten habe ich schon genug Stoff um mir wieder Nachmittage und Nächte um die Ohren zu schlagen.
Vielen Dank für eure Hilfe.
Matthias