Wie baut man ein SWT-Programm auf?

Status
Nicht offen für weitere Antworten.
L

Lupus

Gast
Hallo,

ich habe gerade angefangen Java zu lernen. Da ich schon seit ca. zehn Jahren programmiere ist die Syntax und die OOP-Theorie kein Problem, ich habe nur nicht genau verstanden, wie ich ein Javaprogramm sinnvoll aufbauen sollte. Das Programm soll eine GUI haben (SWT) und im Prinzip ein Frontend für eine Datenbank (SQL) werden. Ich habe schon herumgespielt, scheint alles nicht so kompliziert zu sein, aber so ganz durchgestiegen bin ich nicht, wenn es darum geht, was in Klassen kommen sollte und was man wie aufruft etc.

Ich habe eine Klasse für mein Hauptprogramm. Soll ich darin auch die GUI erstellen, oder sollte ich das auslagern? Wenn ich ein neues "Formular" (also z.B. Ausgabebildschirm mit tabellarischer Ansicht etc.) erstelle, sollte ich das in eine Klasse packen, die gleichzeitig für die Datenbankabfragen und GUI zuständig ist, oder sollte man auch das trennen? Und wie mache ich das am besten, wenn ich die Anwendung nicht auf verschiedene Fenster verteilen will, sondern alles in einem Fenster haben will? Muss ich für jedes neue "Formular" eine neue Shell erstellen?

Wie ist es eigentlich, kann ich im Prinzip jede Java-Klasse aufrufen oder sollte man irgendeine Klasse haben, die alles initialisiert und die anderen nach Bedarf instanziert? "Globale Variablen" definiere ich dann in der Basisklasse?


Danke im voraus
 

freez

Top Contributor
Ich denke, du wirst nicht drum herum kommen, dir das ganze ein wenig anzulesen. Das Forum hier bietet gute Links zu Tutorials, die teilweise von eigenen Mitgliedern erstellt worden sind.

Tip: Wie du deine Klassen erstellst, ist dir überlassen. Du kannst alles in eine Klasse rein schmeissen. Oder auch extra halten. Je nachdem, wie übersichtlich du es halten möchtest.
Wenn du OOP kennst, dann weist du sicherlich, wei du mit deinen "globalen Variablen" umgehen musst.
 
Hi,

im Prinzip kannst du von jeder Javaklasse auf alle anderen Klassen zugreifen wenn du sie importierst. Um etwas Struktur in die Sache zu bekommen würde ich dir davon aber dringend abraten. Generell solltest du versuchen auf 3 Ebenen zu arbeiten sprich: Datenbank- GUI- und Anwendungslogik voneinander trennen. Ich selbst versuche mir immer Knotenpunkte zu erstellen (Eine zentrale Klasse für die steuerung der jeweiligen Ebene). Diese arbeiten dann mit Unterklassen. Kleines Beispiel: du hast die Klassen Load und Save. Load ist nur zuständig um Daten aus der DB zu lesen (Save macht entsprechend das gegenteil). Sonst tun diese Klassen nichts! Die beiden Klassen werden von ihrem Knotenpunkt aus gesteuert (DatabaseManager-Klasse). Dieser wiederum wertet die Ergebnisse von Save und Load aus und gibt die Daten dann weiter an andere Klassen oder bearbeitet sie selbst. Die GUIManager-Klasse regelt entsprechend die ganze Darstellungslogik.
Bei größeren Anwendungen ist es evtl sinnvoll mehrere Knotenpunkte anzulegen und diese je nach Aufgabenbereich zu sortieren.

Beim strukturieren der Klassen helfen auch immer wieder die guten alten Design Pattern:
einfach mal hier vorbeischauen: http://www.java-forum.org/de/viewtopic.php?t=6090#52829
schau dir auch vor allem das MVC-Pattern an

Gruß whitesquirrel
 
L

Lupus

Gast
Danke euch beiden!

Wenn ich das richtig verstehe, sollte ich wohl am besten für die Modelebene, die GUI-Ebene und die Controlebene einzelne Klassen entwickeln, die die entsprechenden Daten dann als Parameter jeweils übergeben.

Wenn ich mir nun überlege, wie ich das als komplettes Programm aufbauen müsste, würde ich das folgendermaßen machen:

Eine Hauptklasse, die den Einstiegspunkt des Programms bildet. Diese Klasse instanziert eine GUI-Klasse, die auf Eingaben wartet. Sobald Eingaben kommen, werden diese entsprechend an die zuständigen Objekte weitergegeben.
Was ich nur nicht so ganz verstehe, ist wie all diese Klassen zusammenhängen. Und muss ich alle Objekte, die ich brauche, in der Hauptklass erstmal erstellen? Ich glaube, ich muss mal diverse JAVA-Tutorials durcharbeiten. Kennt jemand gute Tutorials, die sich damit beschäftgen, wie Klassen zusammarbeiten, was Interfaces sind etc.?

Danke
 
Genau! soweit mal richtig. Du musst deine Objekte aber nicht alle in der Hauptklasse erstellen (wird bei größeren Programmen auch etwas unübersichtlich). Jede Unterklasse kann ihre eigenen Objekte anlegen und verwalten.
Beni und Roar haben ein sehr schönes Tutorium geschrieben dass dir vieleicht einen Einblick gibt wie man strukturiert mit Klassen umgehen kann. Unter anderem wird im Anhang auch erklärt was ein Interface ist...
Schau einfach mal hier vorbei:
http://www.java-forum.org/de/viewtopic.php?t=15778
Und dann das Einsteigertutorial auswählen.
Falls du Fragen dazu hast kannst sie gerne stellen, ich hab das Tutorium ebenfalls durchgekaut (wenn auch nicht ganz komplett)

Viel Erfolg! :wink:
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
Rudolf Swing Baut die View die Modelebene auf oder wer? AWT, Swing, JavaFX & SWT 13
Semox Warum baut man eine GUI nicht in der main-Methode? AWT, Swing, JavaFX & SWT 16
B Fensterinhalt baut sich erst bei Größenveränderung auf AWT, Swing, JavaFX & SWT 3
Juelin Zugriff auf Bildschirmobjekte aus einem anderen Programm AWT, Swing, JavaFX & SWT 6
Juelin starten maven javafx programm ohne netbeans AWT, Swing, JavaFX & SWT 38
P AWT Programm funktioniert nicht richtig AWT, Swing, JavaFX & SWT 35
G CAD Programm AWT, Swing, JavaFX & SWT 4
thor_norsk E - Mail Programm AWT, Swing, JavaFX & SWT 2
_user_q Über installDist exportiertes Programm wirft "Unsupported JavaFX configuration" AWT, Swing, JavaFX & SWT 0
CodingBerlin JavaFX Programm läuft nur unter Eclipse AWT, Swing, JavaFX & SWT 1
J Programm findet Resource nicht. AWT, Swing, JavaFX & SWT 6
N Programm Läuft nicht auf anderen Pcs AWT, Swing, JavaFX & SWT 9
imawake Java Paket-Tracking Programm 📦 AWT, Swing, JavaFX & SWT 7
S Lustiges programm schnell coden? AWT, Swing, JavaFX & SWT 2
O Ein Java-Programm mit Swing steuern AWT, Swing, JavaFX & SWT 1
P Swing Programm hängt sich bei Buttondruck auf? (GUI für "Chatbot" erstellen) AWT, Swing, JavaFX & SWT 15
M DragAndDrop - aus Browser ins Programm AWT, Swing, JavaFX & SWT 6
T Java GUI - Würfel Programm AWT, Swing, JavaFX & SWT 6
JojoSand Java Programm wird nicht gestartet - keinen Fehlerhinweis AWT, Swing, JavaFX & SWT 9
SvenPittelkow Programm soll auf JButton warten bis der geklickt wurde AWT, Swing, JavaFX & SWT 1
I Gui in bestehendes Java-Programm AWT, Swing, JavaFX & SWT 11
L JavaFX IntelliJ Standalone Programm exportieren AWT, Swing, JavaFX & SWT 9
Bluedaishi JavaFX Programm start mit zwei scenen bzw Fenster AWT, Swing, JavaFX & SWT 1
M AWT Programm in den Tray minimieren AWT, Swing, JavaFX & SWT 2
steven789hjk543 Swing Weiß jemand, warum dieses Programm nicht funktioniert? AWT, Swing, JavaFX & SWT 7
A Java Programm gestalten AWT, Swing, JavaFX & SWT 4
P Swing Warum startet das Programm nicht? AWT, Swing, JavaFX & SWT 3
J JavaFX Kamera im Programm öffnen AWT, Swing, JavaFX & SWT 6
H Hintergrundbild in einem Programm AWT, Swing, JavaFX & SWT 4
MR._FIRE_Flower progressBar in ein bestehendes Programm einbauen AWT, Swing, JavaFX & SWT 3
J Verbesserungsvorschläge?! Kleines AWT Programm AWT, Swing, JavaFX & SWT 4
A Programm nun in ein Frame basteln AWT, Swing, JavaFX & SWT 1
A Swing Programm funktioniert aber zwei Buttons werden angezeigt AWT, Swing, JavaFX & SWT 3
G Zeichnen Programm AWT, Swing, JavaFX & SWT 1
R Swing Programm läuft nur beim Debuggen korrekt ab AWT, Swing, JavaFX & SWT 4
Arif Swing Programm friert ein... AWT, Swing, JavaFX & SWT 2
apple_pie1998 Programm gibt plötzlich exceptions aus. AWT, Swing, JavaFX & SWT 4
N Swing Wie Programm strukturieren? (Dynamisch Komponenten hinzufügen) AWT, Swing, JavaFX & SWT 1
N JLabel ändern während Programm ausgeführt wird AWT, Swing, JavaFX & SWT 4
X JMenu Menu-Bar ausrichtung ändern im Programm AWT, Swing, JavaFX & SWT 0
T Swing Programm hängt sich auf! AWT, Swing, JavaFX & SWT 23
L Probleme mit Programm AWT, Swing, JavaFX & SWT 13
S Grafik: Programm kommt nicht zur paint()-Methode AWT, Swing, JavaFX & SWT 6
P Programm durch Dateiaufruf starten und Datei öffnen AWT, Swing, JavaFX & SWT 2
S Action durchführen beim Programm beenden AWT, Swing, JavaFX & SWT 3
N Programm mit Swing und Thread, Figur bewegen sich nicht AWT, Swing, JavaFX & SWT 6
G Programm GUI erstellen AWT, Swing, JavaFX & SWT 5
L JButton flackern - Programm hängt sich auf AWT, Swing, JavaFX & SWT 3
T Programm im METRO Design? AWT, Swing, JavaFX & SWT 1
J Programm hängt sich bei Log In auf AWT, Swing, JavaFX & SWT 1
C Programm mit Passwort schließen AWT, Swing, JavaFX & SWT 5
D Robot Programm mit Escape abbrechen (aus Eclipse heraus) AWT, Swing, JavaFX & SWT 2
N Programm läuft perfekt in Eclipse aber nicht in .JAR AWT, Swing, JavaFX & SWT 3
S JScrollPane --> Programm hängt sich beim scrollen auf AWT, Swing, JavaFX & SWT 2
J Programm im GUI ausführen AWT, Swing, JavaFX & SWT 4
A Probleme mit 2 JFrames in einem Programm AWT, Swing, JavaFX & SWT 7
S Event Handling konsole Programm mit Tastendruck beenden AWT, Swing, JavaFX & SWT 5
G JTextArea on the fly aus anderem Programm befüllen AWT, Swing, JavaFX & SWT 4
K Swing Konsolen Programm in GUI - Suche Hilfe bei Konsolenausgabe AWT, Swing, JavaFX & SWT 2
W Windows Fenster in einem Programm AWT, Swing, JavaFX & SWT 2
F Mal Programm AWT, Swing, JavaFX & SWT 13
C In Hauptfenster Programm-Klassen implementieren AWT, Swing, JavaFX & SWT 9
A KeyListener Button wechseln & Programm beenden AWT, Swing, JavaFX & SWT 4
C Swing Wie kann ich im Programm das Menü schließen AWT, Swing, JavaFX & SWT 2
J SWING - Programm ohne Eclipse etc. starten AWT, Swing, JavaFX & SWT 7
J Button soll nach Klick Text ändern und Programm in 3 Sekunden beenden AWT, Swing, JavaFX & SWT 6
M Programm hängt sich auf nachdem repaint() benutzt wurde AWT, Swing, JavaFX & SWT 2
M Programm in Jframe "einbinden" AWT, Swing, JavaFX & SWT 7
S Programm auf aktuellen Stand bringen AWT, Swing, JavaFX & SWT 2
Spin Tool: Popup -Programm AWT, Swing, JavaFX & SWT 3
GUI-Programmer Swing JWindow - Programm wird ohne Grund beendet AWT, Swing, JavaFX & SWT 3
E Kreis-Mal-Programm AWT, Swing, JavaFX & SWT 7
P Programm aktuallisiert sich nur beim Rüberzeigen AWT, Swing, JavaFX & SWT 6
T Java-Anwendung arbeitet Programm in seltsamer Reihenfolge ab AWT, Swing, JavaFX & SWT 3
C Programm für 5 sekunden anhalten und actionevent abfangen AWT, Swing, JavaFX & SWT 18
J Programm schließen AWT, Swing, JavaFX & SWT 4
J Programm nur einmal öffnen AWT, Swing, JavaFX & SWT 3
E Windows Kontext Menü - Laufendes Programm AWT, Swing, JavaFX & SWT 3
T Programm vom Desktop starten! AWT, Swing, JavaFX & SWT 2
S Programm pausieren während JDialog offen ist AWT, Swing, JavaFX & SWT 2
M Browser in Programm einbinden AWT, Swing, JavaFX & SWT 4
R Durch Listener lässt sich Programm nicht mehr ausführen AWT, Swing, JavaFX & SWT 4
H Userinput in GUI an externes Programm AWT, Swing, JavaFX & SWT 8
D Firefox aus Programm starten AWT, Swing, JavaFX & SWT 4
S LayoutManager Einfaches Programm mit VE und Eclipse3.6 realisieren AWT, Swing, JavaFX & SWT 2
J SWT 32 bit Programm für 64 bit Jave AWT, Swing, JavaFX & SWT 10
R GUI hängt während Programm läuft AWT, Swing, JavaFX & SWT 7
S AWT Fenster schließen und Programm beenden AWT, Swing, JavaFX & SWT 10
H Infofenster vor dem eigentlichen Java Programm AWT, Swing, JavaFX & SWT 3
B Uberschrift in Swing-Programm zur Laufzeit aendern... AWT, Swing, JavaFX & SWT 4
C Swing Kleines Programm mit SWING unter Verwendung von MVC AWT, Swing, JavaFX & SWT 5
capgeti Wie Programm in JPanel (o.ä.) starten? AWT, Swing, JavaFX & SWT 3
B Externes Programm mit Robot Steuern AWT, Swing, JavaFX & SWT 3
G Programm läuft nur auf manchen Rechnern AWT, Swing, JavaFX & SWT 10
M SWT Programm pausiert ungewollt AWT, Swing, JavaFX & SWT 5
K Website in Java Programm einbinden AWT, Swing, JavaFX & SWT 3
B komplettes programm in einem fenster AWT, Swing, JavaFX & SWT 5
L Frage bei Programm mit Zufallskreisen AWT, Swing, JavaFX & SWT 9
L Programm terminated (zu frueh) AWT, Swing, JavaFX & SWT 3
T SplashScreen im laufenden Programm AWT, Swing, JavaFX & SWT 2

Ähnliche Java Themen


Oben