Richtiges Vorgehen bei GUI-Programmierung

Status
Nicht offen für weitere Antworten.

Shuk

Mitglied
Hallo zusammen,

ich hoffe diese Frage wurde nicht schon zu oft gestellt, aber ich weiß irgendwie nicht, wonach ich genau suchen soll.

Und zwar möchte ich gerne anfangen mit Swing eine GUI zu programmieren und damit ich von vornerein gleich richtig vorgehe, würde ich gerne wissen, ob es da irgendwelche "Standardvorgehen" gibt. Vielleicht auch eine gute Seite mit einem Tutorial oder Programmbeispielen.
Mir geht es dabei nicht darum, wie ich jetzt einen JFrame anlege oder dort einen Button einfüge. Hello World kriege ich also schon gut hin ;) - die Grundprogrammierung kann ich also schon.

Aber wie geht man z.B. vor, wenn man den Inhalt eines Bereiches im Frame ändern will? Ruft man dann eine Methode auf, welche die bestehenden Elemente versteckt und die neuen dafür einblendet? Oder blendet man den ganzen Frame aus und blendet einen neuen ein?

Also wie programmiere ich am besten, wenn ich wechselnde Inhalte habe?

Bin für alle Antworten dankbar!
 
M

math66

Gast
hallo, also es empfiehlt sich immer, das MVC pattern zu nutzen. das steht für MODEL VIEW CONTROL (seeheim modell). man unterteilt eine software also in 3 komponentenarten. die viewkomponenten, was die sichtbare gui ist, dann einen oder mehrere gui controll und das model, was dann die anwendungslogik ist. drückt man jetzt auf einen button in der gui, dann wird der guicontroller aufgerufen, welcher sich dann an das model wendet. ein beispiel:

man sucht einen nutzer, der in ein jtextfield eingegeben wurde:

1. in der actionperformed methode des buttons ruft man den guicontroller auf


Code:
ArrayList<String> result=guiController.search(textFeld.getText());


2. der guicotroller wendet sich an das modell

Code:
//am besten ein facade verwenden, die dann das modell kapselt und so eine schmale schnittstelle für alle zugriffe liefert
//man nach facade design pattern suchen
ArrayList<String>=facade.search(name);


3. die facade ruft dann die passende methode im modell auf und liest das aus der datenbank oder sonstwoher und gibt wieder was zurück

4. der guicontroller hat jetzt alle daten einer person in einer arrayliste vorliegen....die kann er nun in ein neues fenster packen und anzeigen.


es empfiehlt sich halt immer, anwendungslogik von der gui fernzuhalten.

viele grüße
 
M

math66

Gast
war nicht ganz richtig, unter 1. muss es heissen:

Code:
guiController.search(....);

der guicontroller bekommt ja die arraylist und macht dann was damit, und nicht die gui.

der vorteil daran ist, dass die gui fast komplett von der logik entkoppelt ist und der controller ausgetauscht werden kann, das ist GUUUUUUT!


hoffe, das war nicht zu viel für den anfang :-|
 

Shuk

Mitglied
Hi, danke für die Anwort. MVC sagt mir schon was und danach werde ich dann wohl auch vorgehen.
Was mit jetzt nur noch unklar ist, wie man überhaupt am besten umsetzt, die unterschiedlichen GUI-Komponenten anzuzeigen bzw. auszutauschen. Angenommen ich möchte eine Art Wizard machen, wo man immer im aktuellen Fenster ein paar Komponenten hat und anschließend auf "weiter" klickt. Dann ändert sich das Bild und es stehen anderen Komponenten im Frame. Blendet man da dann einfach die "alten" Komponenten aus (setVisible(false)) oder wie geht man da am sinnvollsten vor?

Und noch eine kleine Frage zu den unterschiedlichen Layout Managern. Sehe ich das richtig, dass man diese immer miteinander schachtelt (also auf die in einem Layout eingebundenen Komponenten wieder neue Layouts setzt), um das gewünschte Anzeigeergebnis zu erhalten? Oder gibt es hier eine elegantere Methode?
 

foobar

Top Contributor
Mach dir doch eine Guikomponente die als Container für Wizards agiert. Der Container hat nur ein paar Buttons wir vor, zurück, abbrechen etc. Bei Klick auf einen der Buttons wird dann ein anderes Panel in den Container geladen.
P.S. Es gibt von JGoodies ein Framework für Wizards.
 

Shuk

Mitglied
Hi foobar,

ja so hatte ich mir das auch vorgestellt, war mir aber nicht sicher, ob das die gängige Vorgehensweise ist. Aber da man es anscheinend durchaus so machen kann, werd ich es dann mal so probieren.
Das Framework werde ich mir auch mal anschaue, danke für den Hinweis!

Danke für alle Anworten soweit!
 

foobar

Top Contributor
ja so hatte ich mir das auch vorgestellt, war mir aber nicht sicher, ob das die gängige Vorgehensweise ist. Aber da man es anscheinend durchaus so machen kann, werd ich es dann mal so probieren.
Es spielt doch keine Rolle ob das gängig ist oder nicht. Wenn jeder nur noch das macht was als gängig oder normal gilt, gibt es überhaupt keinen Fortschritt mehr. Mach es einfach so wie es für dich richtig erscheint und wenn es dann nicht funktioniert oder du nicht weiter kommst kannst du immer noch nachfragen.

Viele Grüße
foobar
 

Leroy42

Top Contributor
foobar hat gesagt.:
Wenn jeder nur noch das macht was als gängig oder normal gilt, gibt es überhaupt keinen Fortschritt mehr.

Richtig! Aber das kann man auch genau anders herum sehen.

Wenn jeder versucht das Rad neu zu erfinden, und sich mit der Überwindung von, schon
innerhalb von Jahrzehnten ausgemerzten Fehl-Denkansätzen, herumplagen muß, wann
bitte schön, findet er dann endlich die Zeit, etwas zum Fortschitt beitragen zu können. :cool:

Zugegeben etwas überspitzt formuliert, aber ich denke man sollte in beiden Richtungen
offen bleiben.
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
CptK Point2D.Double Kurven - Beschriftung und richtiges Anklicken AWT, Swing, JavaFX & SWT 7
K richtiges Ausrichten mehrerer Labels AWT, Swing, JavaFX & SWT 3
J Spieleprogramm als "richtiges" Spiel starten AWT, Swing, JavaFX & SWT 19
N Richtiges einstellen der size von JPanels AWT, Swing, JavaFX & SWT 10
M Swing Vorgehen beim Aufruf der Klassen/Methoden AWT, Swing, JavaFX & SWT 7
Q LayoutManager Wie vorgehen? AWT, Swing, JavaFX & SWT 11
R Wie Vorgehen bei fundamentaler Veränderung des Layouts während des Programmablaufs? AWT, Swing, JavaFX & SWT 19
K Wasserzeichen wie vorgehen? AWT, Swing, JavaFX & SWT 6
A grundsätzliches Vorgehen für GUI Programmierung AWT, Swing, JavaFX & SWT 6
J GUI Programmierung Popup-Menü AWT, Swing, JavaFX & SWT 4
MiMa Package Struktur für GUI Programmierung AWT, Swing, JavaFX & SWT 26
MiMa GUI Programmierung AWT, Swing, JavaFX & SWT 19
A GUI-Programmierung AWT, Swing, JavaFX & SWT 4
J Frage zur objektorentierten Swing Programmierung AWT, Swing, JavaFX & SWT 10
D Swing Swing und Programmierung auf Schnittstellen AWT, Swing, JavaFX & SWT 2
R GUI Programmierung AWT, Swing, JavaFX & SWT 3
M Tipps für Gui-Programmierung? AWT, Swing, JavaFX & SWT 9
H JOGL Programmierung - glRotatef() AWT, Swing, JavaFX & SWT 4
M GUI-Programmierung - GUI-Builder oder eigenständig? AWT, Swing, JavaFX & SWT 16
G Generelle Vorgehensweise Eventhandling bei GUI Programmierung AWT, Swing, JavaFX & SWT 14
H Struktur für Gui-Programmierung AWT, Swing, JavaFX & SWT 2
U java 6 Programmierung AWT, Swing, JavaFX & SWT 5
A Wecker-Programmierung mit GUI AWT, Swing, JavaFX & SWT 3
F JList und saubere Programmierung AWT, Swing, JavaFX & SWT 4
H Java Ascii Rechner Programmierung AWT, Swing, JavaFX & SWT 4
T Problem mit der Programmierung von Fenster und deren Inhalte AWT, Swing, JavaFX & SWT 4
N thread programmierung AWT, Swing, JavaFX & SWT 2
W Nebenläufige Programmierung AWT, Swing, JavaFX & SWT 6
M einfache Frage über SWT GUI-Programmierung AWT, Swing, JavaFX & SWT 3
S GUI Programmierung AWT, Swing, JavaFX & SWT 11

Ähnliche Java Themen


Oben