Swing Projektaufbau

darekkay

Bekanntes Mitglied
Hey,

ich versuche demnächst mein erstes Swing-Projekt umzusetzen. Die Grundlagen sind da, doch ich weiß nicht so recht, wie ich das Programm strukturieren soll. Ich würde mir gerne gleich eine "richtige" Methode aneignen, um später einheitlich zu programmieren.
In Büchern wird zwar das nötige Wissen vermittelt, um eine Anwendung zu programmieren, doch nirgends steht ein guter Ansatz für den genauen Aufbau (Pakete, Trennung von Code und GUI, ...)

Meine erste Idee - ich schaue mir einige fertige Projekte an. Das Problem ist, dass bekannte Programme (jEdit, jDownloader, ...) riesig sind, sodass ich da nicht wirklich durchsteige. Bei kleineren Projekten scheint widerum jeder seinen eigenen Ansatz zu haben, oft wird alles auch gerne in 2-3 Dateien abgearbeitet (was bei kleinen Sachen ja nicht unbedingt verwunderlich ist).

Es ist mir auch klar, dass es nicht DIE Struktur gibt, die jedes Programm besitzen muss, aber es muss doch ein paar Guidelines o.Ä. geben. Ich bräuchte am besten ein kleines, gut strukturiertes Programm oder eine Art Template, das für neue Projekte benutzt werden kann.

Hat jemand eine Idee, wo ich so etwas finden kann?
 

Noctarius

Top Contributor
Les dir mal etwas über das MVC Pattern durch (Model-View-Controller). Da gibt es auch bestimmte Frameworks in Bezug auf Swing.
 

darekkay

Bekanntes Mitglied
Danke, das habe ich mir bereits durchgelesen ;)

Was ich meinte, war eher der allgemein Aufbau eines Projektes (welche Pakete, was gehört in welches Paket - die generelle Aufteilung). Dabei soll eine "typische" Desktopanwendung im Vordergrund stehen.

Da ich leider nicht wirklich fündig wurde, habe ich nun selbst etwas gebastelt. Es wäre toll, wenn jemand drübergucken könnte, um das ganze eventuell noch zu verbessern ;)
Einerseits möchte ich selbt eine Vorlage haben, die ich bei den meisten Projekten quasi sofort nehmen kann (mit ensprechenden Anpassungen) - auf der anderen Seite würde ich sie auch gerne anderen zur Verfügung stellen, die ebenfalls so etwas suchen ^^

Im Anhang findet ihr das Projekt. Bis jetzt ist folgendes implementiert:
- eine Form, ein Beispielmenu, ein "About"-Dialog
- Programm-Icon wird geladen (für eigenes Projekt einfach Icon ersetzen)
- die Programmeinstellungen können gespeichert/geladen werden
- ein paar utils (Fenster zentrieren, LaF setzen)

Über ein Feedback/Verbesserungsvorschläge würde ich mich freuen ;)
 

Anhänge

  • myTemplate.zip
    37,3 KB · Aufrufe: 11

Noctarius

Top Contributor
Im Endeffekt musst du wissen was zusammengehört und was man sinnvoll thematisch, aspektmäßig trennen kann. Es gibt keine klaren Regeln für Package-Aufteilung. Aber generell haben sich bestimmte Dinge als nützlich erwiesen.
Z.B.:
* Möglichst viel gegen Interfaces programmieren. Man weiß nie wann ein Programm mal größer wird und eventuell eine zweite Implementierung eines Interfaces benötigt.
* Die Implementierungen der Interfaces (soweit extern nicht benötigt) in Subpackage verschieben, bzw darunter einordnen um diese z.B. auf OSGi Plattformen als nicht sichtbar erscheinen zu lassen.
* Gui-Klassen von Modell- und Controller-Klassen trennen.
* Generell bei thematischer Trennbarkeit auch eigene Packages zu nutzen, allein der Übersicht halber.

Gibt sicher noch massig andere Basisideen
 

Neue Themen


Oben