Welches Pattern bei GUI Anwendungen?

Mr Hankey

Mitglied
Nach welchem Muster sollte ich meine GUI Anwendug entwerfen, wenn mir Übersichtlichkeit und Erweiterbarkeit wichtig ist? Bisher bin ich immer mit anonymen Listenern ausgekommen, die ich auf meine Buttons gesetzt habe, weil ich nie viele Buttons auf einem Frame hatte. Aber ich könnte mir vorstellen, dass das dann etwas unübersichtilch wird, für viele Buttons einen Listener zu schreiben.

Wie wird das normalerweise geregelt? Ich habe verschiedene Ansätze gehört, u.a. das MVC Pattern. Hier stellt sich mir die Frage, wie M, V und C aufgeteilt sind bei z.b. einer Swing GUI. Die View wird wahrscheinlich die GUI an sich sein. Könnten die Listener die Controller sein und separate Klassen für die Fachlogik die Models? Ich würde gerne eine Anwendung schreiben, die mit der Zeit etwas komplexer werden könnte. Kann mir jemand einen Entwurf nennen, an den man sich prinzipiell halten kann? Ein Beispiel-"Gerüst" wäre ganz hilfreich.
 

Bernd Hohmann

Top Contributor
Es gibt leider kein Pattern für GUI-Entwicklung was von einer Mini-Anwendung bishin zu was richtig großem skaliert und dabei noch Handzahm bleibt.

Um MVC stringent durchzuziehen arbeitet man zb. am besten mit Observern oder einem Event-Bus. Damit das sauber von den Objekten entkoppelt wird, schickt man dann sowas wie ".fireEvent("OK-Button")" oder ".fireEvent("value_changed", "name1") (Pseudocode) durch die Gegend.

Im Prinzip eine saubere Sache, aufgrund der textlichen Benamsung sind Missverständnisse der Sorte "Name1" vs "name1" eher die Regel als Ausnahme. Das Ganze führt natürlich auch dazu, dass Du jedes neue Eingabefeld an 3 Stellen nachpflegen musst.

Letztendlich hängt die Vorgehensweise stark davon ab, was es für eine GUI sein soll. Hast Du eine definierte Menge von gleichförmigen Eingabemasken (oben Schlüsseleingabe/Suche, unten Neuerfassung/Änderung) oder geht es eher zb. wie bei einer Bildbearbeitung quer durcheinander? Müssen Felder sofort geprüft werden oder langt es das nach dem OK-Button zu machen?

Bei einfachen Masken und Prüfungen reicht es zb. den Focus-Lost jedesmal auszuwerten, grössere Masken brauchen eine andere Ablaufsteuerung.

Es führen sehr viele Wege nach Rom, was für den einen Anwendungsfall das "Top-Pattern" ist versagt im anderen Fall völlig.

Für wichtig halte ich, dass Du dir selber ein grundlegendes Pattern, zugeschnitten auf die IDE und den GUI-Builder Deiner Wahl erzeugst und das durchhälst. Bei mir zb. wird immer dafür gesorgt, dass Methoden des Namens app_start() und app_stop() bei Beginn und Ende durchlaufen werden - da hat man wenigstens einen Anhaltspunkt wo es losgeht und wo man rausfliegt (bzw. was man aufrufen muss um das Fenster oder die Anwendung sauber zu beenden).

Bernd
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
C GUI Entwicklung - welches Pattern? AWT, Swing, JavaFX & SWT 16
berserkerdq2 Wie greife ich auf ein Element zu, welches ich beim Scenebuilder erstellt habe AWT, Swing, JavaFX & SWT 10
S Welches Java Layout sollte ich verwenden? AWT, Swing, JavaFX & SWT 3
P Bewegung eines Balkens in eineum JPanel welches als Spielfeld fungiert AWT, Swing, JavaFX & SWT 2
K Fenster welches den Sieger anzeigt AWT, Swing, JavaFX & SWT 5
ImperatorMing JavaFX Übersicht - Welches Element kann welches Erreignis AWT, Swing, JavaFX & SWT 3
Thallius Wer oder was bestimmt welches Frame toFront kommt wenn ein anderes geschlossen wird? AWT, Swing, JavaFX & SWT 8
Soloeco LayoutManager Wie und welches Layout nutze ich am Besten? AWT, Swing, JavaFX & SWT 13
M Java FX Welches Accordion Tilded Pane geöffnet? AWT, Swing, JavaFX & SWT 4
B Hilfe welches Layout brauch ich AWT, Swing, JavaFX & SWT 4
S Größe von Panel verändern welches auf anderem Panel sitzt AWT, Swing, JavaFX & SWT 10
F Welches GUI Plugin bzw. IDE für schnelle und gute Lösungen AWT, Swing, JavaFX & SWT 7
K 2D-Grafik BufferedImage eingelesen, welches Modell?! AWT, Swing, JavaFX & SWT 2
C [GUI] Welches GUI? AWT, Swing, JavaFX & SWT 28
G LayoutManager Layout welches von Links nach rechts anordnet mit TOP Alignment! AWT, Swing, JavaFX & SWT 5
F Timer welches JPanel aktualisiert AWT, Swing, JavaFX & SWT 6
E Layout, aber welches? AWT, Swing, JavaFX & SWT 8
N Bilder aus Infos generieren lassen. Welches Framework? AWT, Swing, JavaFX & SWT 8
L Welches Layout? AWT, Swing, JavaFX & SWT 6
S Welches Event beim ändern einer Zelle in einer JTable AWT, Swing, JavaFX & SWT 4
S Welches Event beim auswählen einer Zelle? [JTable] AWT, Swing, JavaFX & SWT 3
GilbertGrape Wie Panel anordnen? Welches Layout? AWT, Swing, JavaFX & SWT 7
J welches Layout? AWT, Swing, JavaFX & SWT 8
A welches programm? AWT, Swing, JavaFX & SWT 17
D Welches Layout für prozentuale Aufteilung: 20% - 60 % - 20% AWT, Swing, JavaFX & SWT 3
G welches Layout sollte ich benutzen? AWT, Swing, JavaFX & SWT 2
D Wie viele Pixel welches Icon? AWT, Swing, JavaFX & SWT 4
D Welches Layout? AWT, Swing, JavaFX & SWT 2
K welches package muss ich angeben um GUIs zu erstellen? AWT, Swing, JavaFX & SWT 5
D JPanel, welches sich per Button vergrößert(in GridBagLayout) AWT, Swing, JavaFX & SWT 2
A Herausfinden welches Document gesetzt ist AWT, Swing, JavaFX & SWT 4
G Welches L&F gesetzt? AWT, Swing, JavaFX & SWT 12
T mousemoved abfrage - aber welches event wenn maus weg? AWT, Swing, JavaFX & SWT 2
lin Welches Objekt für einen About-Dialog verwenden? AWT, Swing, JavaFX & SWT 2
V Welches Event wird von einer JTabbedPane gefeuert? AWT, Swing, JavaFX & SWT 2
B 3 Zeilen die unterschiedlich gross sind -->Welches Layout AWT, Swing, JavaFX & SWT 3
R Welches Layout? AWT, Swing, JavaFX & SWT 4
W welches Layout? AWT, Swing, JavaFX & SWT 3
C Welches Toolkit für GUI AWT, Swing, JavaFX & SWT 2
O Welches Layout ? AWT, Swing, JavaFX & SWT 5
B Observer Pattern JLabel ändern AWT, Swing, JavaFX & SWT 7
B JavaFX Pattern (Aufteilung Zuständigkeiten AWT, Swing, JavaFX & SWT 7
M Swing MVC-Pattern - View mit mehreren Models AWT, Swing, JavaFX & SWT 5
C Swing Daten in JTable wiedergeben per TableModel und MVC Pattern AWT, Swing, JavaFX & SWT 16
Cromewell JavaFX MVC-Pattern AWT, Swing, JavaFX & SWT 7
L JavaFX Java FX Anwendung nach MVC mit Observer Pattern AWT, Swing, JavaFX & SWT 15
3 2D-Grafik BasicStroke dash pattern - Linie zu lang!? AWT, Swing, JavaFX & SWT 1
lumo SWT Image Pattern AWT, Swing, JavaFX & SWT 5
M Swing MVC Pattern verstanden, aber Probleme bei der Umsetzung AWT, Swing, JavaFX & SWT 5
J Swing Controller im MVC-Pattern AWT, Swing, JavaFX & SWT 9
G Hilfe! Command Pattern an easy ImageViewer? AWT, Swing, JavaFX & SWT 13
D Wie mehrere Grafiken auf JPanel anzeigen lassen? (Observer pattern?) AWT, Swing, JavaFX & SWT 24
D MVC Pattern in Swing-Applikationen AWT, Swing, JavaFX & SWT 4
hdi Observer-Pattern bei JPanel nicht möglich? AWT, Swing, JavaFX & SWT 7
A MVC-Pattern - Kreuzweise Anwendung? AWT, Swing, JavaFX & SWT 4
F JavaFX JavaFX-Anwendungen testen AWT, Swing, JavaFX & SWT 1
L JavaFX JavaFX Anwendungen schön rednern? AWT, Swing, JavaFX & SWT 2
dzim JavaFX Aufbau eurer Anwendungen AWT, Swing, JavaFX & SWT 0
D Event Handling in Komplexen Anwendungen AWT, Swing, JavaFX & SWT 9
ARadauer Wenig Material zum Thema: Design, Layout, Usability von Swing Anwendungen AWT, Swing, JavaFX & SWT 11
ARadauer Swing Automatisierte GUI Tests von Swing Anwendungen AWT, Swing, JavaFX & SWT 2
M Swing Aktualisieren von laufenden Anwendungen AWT, Swing, JavaFX & SWT 10
L Zwei Anwendungen kommen sich in die Quere! AWT, Swing, JavaFX & SWT 4
Iron Monkey Alle Anwendungen werden miniert AWT, Swing, JavaFX & SWT 2
F Allgemeine Frage über Fenster in Anwendungen AWT, Swing, JavaFX & SWT 2
X Externe Anwendungen in JInternalframe starten. AWT, Swing, JavaFX & SWT 5
A Cursor Icon bei DnD aus nativen Anwendungen AWT, Swing, JavaFX & SWT 2
T Warnsounds in Swing-Anwendungen abschalten AWT, Swing, JavaFX & SWT 4

Ähnliche Java Themen

Neue Themen


Oben