GUI-Programmierung - GUI-Builder oder eigenständig?

M

Markus N.

Gast
Hallo liebes Java-Forum,

ich habe bisher privat in C++ programmiert und beschränkte mich, trotz fortgeschrittener Kenntnisse, zumeist auf die Konsolenprogrammierung. Ernsthafte größere Projekte hatte ich also nie begonnen.

Nun plane ich aus berufstechnischen sowie wissenstechnischen Gründen die Programmiersprache Java zu "erlernen" bzw. mich einzuarbeiten. Für zukünftige Projekte möchte ich gerne auf grafische Benutzeroberflächen setzen. Hierbei stellt sich mir aber nun eine Frage.

Sollte ich mir bei der Programmierung von Software auf Basis grafischer Benutzeroberflächen sogenannte "GUI-Builder" zur Hilfe nehmen oder mich ausschließlich auf komplett eigenständig programmierte GUI's beschränken? So gäbe es den Weg, die GUI selbst über den Builder zusammenzuklicken und die Logik sowie Funktionalität zu implementieren ( ich weiß, dass das auschließliche Zusammenklicken kein Programmieren ist ) oder gar alles selbst programmieren ( BorderLayout, GridLayout ... ) .

Wie wird soetwas vorallem in der profesionellen Programmierung gehandhabt?

Ich bedanke mich und wünsche noch einen schönen Tag!

Liebe Grüße,
 

Marco13

Top Contributor
Von "professioneller Programmierung" hab' ich keine Ahnung, aber ... diese GUI-Builder haben mehrere Nachteile: 1. Der Code, den sie generieren, ist meistens unlesbar, 2. Man versteht den Code nicht (insbesondere, wenn man nicht schon oft vorher was ähnliches per Hand gebaut hat), 3. Es gibt immer wieder spezielle Dinge, die NICHT vom GUI-Builder abgedeckt werden.

Es gibt sicher Fälle, wo ein GUI-Builder OK ist: Wenn man 20 Eingabemasken nach Schema F zusammenfrickeln muss, und man die Applikation möglichst schnell und einfach auf den Bildschirm bringen muss. Für alles andere:
Java how to [ComponentName]
in eine Suchmaschine eintippen, z.B.
java how to jbutton
-> How to Use Buttons, Check Boxes, and Radio Buttons (The Java™ Tutorials > Creating a GUI With JFC/Swing > Using Swing Components)
 

Ullenboom

Bekanntes Mitglied
Etwas vereinfacht gesagt: Ich würde immer einen Gui-Builder einsetzen. Den Code schaut man sich nicht an, der ist nur generiert, weil Java keine Ressourcen-Dateien nutzen kann, so was wie XAML. Erst bei JavaFX gibt es einen deklarativen Weg. Logik kommt nach dem MVP-Pattern sowieso nicht in die View-Implementierung.
 

njans

Top Contributor
Ebenfalls ein Nachteil von GUI Buildern ist, dass du den Code meist nicht verändern kannst, ohne dass dann der GUI-Builder diesen Code nicht mehr lesen kann und als Konsequenz nutzlos wird.
 

Fab1

Top Contributor
Vor paar Monaten gab es bereits mal einen Thread hierzu und die Lösung war ganz einfach.

Ähnlich wie bei Programmiersprachen gibt es keine Perfekte. So ist es auch bei diesem Thema es gibt Vorteile und Nachteile, aber keine richtige Lösung. Man muss abwägen und anschließend entscheiden.
 
G

Guest2

Gast
Moin,

ich verwende für gewöhnlich den WindowBuilder von Eclipse/Google. Der daraus resultierende Code ist

1. (fast) so wie ich ihn schreiben würde.
2. Ich kann den Code manipulieren und trotzdem kommt der Builder damit zurecht.
3. Per optionalem data binding kann UI und Model verbunden / generiert werden. (JSR 295)
4. Zu einem gegebenen Bean eine UI zu bauen ist zeitraubend. Wozu ne Stunde schreiben, wenn (fast) derselbe Code auch per Wizard erstellt werden kann. (Beispiel z.B. hier.)

Nichtsdestotrotz sollte man imho den Code auch von Hand schreiben können.

Viele Grüße,
Fancy
 

bERt0r

Top Contributor
Auf keinen Fall solltest du als Anfänger GUI-Builder benutzen. Was du per Hand nicht bauen kannst, wird dir auch mit dem GUI Builder nicht gelingen, zumindest nicht ordentlich. Aus Erfahrung weiß ich, da kommt dann irgendein Code raus, der schelcht wartbar ist und früher oder später bockt und dann geht nix mehr und der Kollege/das Java Fourm kann den Fehler finden.
 

Cola_Colin

Top Contributor
Also ich würde eher sagen, dass man gerade als Anfänger auch zunächst mal mit GUI-Builder arbeiten kann, weil es einem zunächst mal ne Menge Sachen abnimmt, die man dann nach und nach lernen kann. Aber der bessere Code und die schönere GUI kommt ganz klar bei handgeschriebenem Code raus.
 

bERt0r

Top Contributor
Da widerspreche ich dir mal deutlich. Wenn du kochen lernen willst, beginnst du auch nicht damit scharenweise fertigpizzas zu backen. Das hilft dir nämlich null und lernt dir nur falsche Sachen ein.
edit: btw. ich liebe Analogien
 
G

Gast2

Gast
Moin,

faszinierend wieviele hier auf GUI-Builder rumhacken. Tastsache ist das ich mit Qt schneller eine GUI zusammen gefrickelt habe als mit Java. Abgesehen davon hat im GUI-Code Programm-Code nichts zu suchen. Alle die hier rummeckern scheinen sich nicht dran zu halten :)

Im Grund müsste ein GUI-Builder die entsprechenden Methoden (Click-Events, Scroll-Events etc.) als virtuelle Methoden anlegen und anschließend kann man erben und die Controlerlogik reinhauen, wobei das nicht wirklich getrennt ist. Eher müsste der GUI-Builder entsprechende Listner bereitstellen.

hand, mogel
 
G

Gast2

Gast
Wie bei jedem Code der generiert wird, müssten auch "gute" GUI-Builder GenerationGap unterstützen.
 

bERt0r

Top Contributor
GUI Builder sind super, aber man muss eben wissen was man da zusammenklickt, wenn man sie benutzt. Sonst weiß man doch nicht einmal, welche Art von Listener man für eine gewisse Sache benötigt.
 

Cola_Colin

Top Contributor
Da widerspreche ich dir mal deutlich. Wenn du kochen lernen willst, beginnst du auch nicht damit scharenweise fertigpizzas zu backen. Das hilft dir nämlich null und lernt dir nur falsche Sachen ein.
edit: btw. ich liebe Analogien

Ich kann da nur von meinem eigenen Lernweg sprechen, der sah so aus, dass ich zunächst mit der Entwicklung von GUIs total überfordert gewesen wäre. Der Guibuilder von Netbeans kam da gerade recht. Ein bisschen was zusammengeklickt und dabei die verschiedenen Swing-Komponenten kennen gelernt-welcher Listener für was inklusive, den Code des Builders habe ich mir in Teilen ja durchaus angeschaut-, super sache. Klar war der Code murks und Trennung von GUI-Code und Logik war kaum gegeben. Aber es hat mir ermöglich zunächst mal die Komponenten kennen zu lernen.

Wenn ich Kochen lernen will, dann ist es vielleicht keine schlechte Idee zunächst eine Fertigpizza in den Ofen zu schieben, einfach nur um zu schauen, wie der Ofen funktioniert und wie eine Pizza überhaupt aussieht. ;)

Abgesehen davon hat im GUI-Code Programm-Code nichts zu suchen. Alle die hier rummeckern scheinen sich nicht dran zu halten :)

Wieso ist das nur mit Gui-Buildern möglich?
 

bERt0r

Top Contributor
Also wenn du mit dem GUI Builder den korrekten Umgang mit Swing Komponenten gelernt hast bist du glaub ich eher eine Ausnahmeerscheinung. Normalerweise sieht das dann eher so aus: http://www.java-forum.org/awt-swing-swt/138595-non-static-variablen-benutzen.html Ich will plammy hier nix unterstellen, weiß aber dass Anfänger durch GUI Builder ähnlichen Code erzeugen und dann eine Menge Zeit damit verschwenden, diesen Code zu korrigieren - weil irgendwo hakts dann immer.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
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
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
A grundsätzliches Vorgehen für GUI Programmierung AWT, Swing, JavaFX & SWT 6
M einfache Frage über SWT GUI-Programmierung AWT, Swing, JavaFX & SWT 3
S Richtiges Vorgehen bei GUI-Programmierung AWT, Swing, JavaFX & SWT 7
S GUI Programmierung AWT, Swing, JavaFX & SWT 11
Maxim6394 JavaFX Scene Builder - Crash bei eigener Komponente AWT, Swing, JavaFX & SWT 2
N JavaFX Einfacher Taschenrechner mit Scene Builder und Java FX AWT, Swing, JavaFX & SWT 0
B Scene Builder Textfeld Begrenzen AWT, Swing, JavaFX & SWT 3
I Scene Builder - mehrere Seiten AWT, Swing, JavaFX & SWT 6
J JavaFX Schiffe versenken mit JavaFX und Scene builder AWT, Swing, JavaFX & SWT 3
D Verschieden Scenen ansprechen mit dem Scene Builder und JavaFX (Eclipse) AWT, Swing, JavaFX & SWT 16
izoards Scene Builder vs. reality..... AWT, Swing, JavaFX & SWT 8
H JavaFX JavaFX - Scene Builder - BorderPane AWT, Swing, JavaFX & SWT 23
ruutaiokwu SWT "Google Window Builder" tut keine jar's ins Projekt rein bei SWT-Projekt AWT, Swing, JavaFX & SWT 22
S Scene Builder Fehlermeldung (Anfängerprobleme) AWT, Swing, JavaFX & SWT 0
S Scene Builder Fehlermeldung (Anfängerprobleme) AWT, Swing, JavaFX & SWT 8
R JavaFX Scene Builder Grundsätzliches AWT, Swing, JavaFX & SWT 6
S JavaFX Unterschiede zwischen Scene Builder 2.0 und der ausgeführten App AWT, Swing, JavaFX & SWT 17
S Window Builder AWT, Swing, JavaFX & SWT 20
B JavaFx Scene Builder Problem AWT, Swing, JavaFX & SWT 2
B JavaFX Grundlegende Verständnisfrage JavaFX<->Scene Builder AWT, Swing, JavaFX & SWT 12
D Gluon Scene Builder Custom AWT, Swing, JavaFX & SWT 0
L JavaFX GUI mit JavaFX. Scene Builder source code? AWT, Swing, JavaFX & SWT 6
Z Window Builder - Labels mit setText befüllen AWT, Swing, JavaFX & SWT 11
n00b4u JavaFX Scene-Builder Ressourcengrab? AWT, Swing, JavaFX & SWT 0
I Scene Builder kann .fxml nicht mehr laden AWT, Swing, JavaFX & SWT 3
EisKaffee Swing Window Builder installieren AWT, Swing, JavaFX & SWT 1
A Mit dem Scene Builder eine Collage erstellen (Bilder beziehen aus Flickr) AWT, Swing, JavaFX & SWT 1
B JavaFX Scene Builder: resize funktioniert (meist) nicht AWT, Swing, JavaFX & SWT 6
M JavaFX Wo finde ich den Scene Builder? AWT, Swing, JavaFX & SWT 3
A JavaFX Scene Builder eigene Klasse hinzufügen AWT, Swing, JavaFX & SWT 2
F JavaFX Scene Builder AWT, Swing, JavaFX & SWT 2
F JavaFX Scene Builder AWT, Swing, JavaFX & SWT 3
D JavaFX Scene Builder 2.0 einfügen einer CheckBoxListCell AWT, Swing, JavaFX & SWT 0
M JavaFX Fenstersteuerung in scene builder AWT, Swing, JavaFX & SWT 2
N JavaFX TreeTable Scene Builder AWT, Swing, JavaFX & SWT 8
M NetBeans Swing GUI Builder AWT, Swing, JavaFX & SWT 2
F GUI Einstieg (Scene Builder) AWT, Swing, JavaFX & SWT 3
H JavaFx - Scene Builder 2.0 - Classpath AWT, Swing, JavaFX & SWT 2
S GUI Entwicklung: GUI Builder oder doch lieber händisch? AWT, Swing, JavaFX & SWT 17
A JavaFX Eigene Komponenten im Scene Builder AWT, Swing, JavaFX & SWT 0
J Gibt es brauchbare GUI-Builder, oder doch besser alles per Hand machen? AWT, Swing, JavaFX & SWT 6
T Kleinen "Gui Builder" programmieren AWT, Swing, JavaFX & SWT 12
S NetBeans GUI Builder - Code-Platzierung AWT, Swing, JavaFX & SWT 3
M Swing In GUI-Builder-JFrame mit Menü Schreiben und Zeichnen AWT, Swing, JavaFX & SWT 4
J Swing Window-Builder-Projekt richtig übertragen AWT, Swing, JavaFX & SWT 2
H Swing Google Window-Builder AWT, Swing, JavaFX & SWT 4
H JTabedPane in GUI-Builder AWT, Swing, JavaFX & SWT 7
D SWT CheckBox auslesen (Window Builder Pro) AWT, Swing, JavaFX & SWT 2
G Grafische Oberflächen mit Java - GUI Builder oder von Hand? AWT, Swing, JavaFX & SWT 19
L Gui-Builder AWT, Swing, JavaFX & SWT 3
D Netbeans GUI-Builder Darstellungsprobleme AWT, Swing, JavaFX & SWT 2
T SWT Window Builder Pro File Dialog anzeigen AWT, Swing, JavaFX & SWT 10
T Auswahl in GUI-Builder mit Grafiken ausstatten AWT, Swing, JavaFX & SWT 4
I GUI Builder? Framework? Per Hand? AWT, Swing, JavaFX & SWT 9
F GUI Designer / Builder zeichnen AWT, Swing, JavaFX & SWT 7
B BufferedImage Builder AWT, Swing, JavaFX & SWT 15
T GUI-Builder selber erstellen AWT, Swing, JavaFX & SWT 2
F GUI-Builder rauskriegen AWT, Swing, JavaFX & SWT 4
A GUI-Builder AWT, Swing, JavaFX & SWT 5
K Netbeans GUI Builder (Matisse) und erstellen von JPopupMenu AWT, Swing, JavaFX & SWT 1
M Swing GUI Builder AWT, Swing, JavaFX & SWT 2
G Problem mit Cloudgarden's Jigloo (GUI-Builder) AWT, Swing, JavaFX & SWT 2
S Textdokumment öffnen(NetBeans5 Matisse GUI Builder) AWT, Swing, JavaFX & SWT 19
L Wo gibts gute, kostenlose Swing-Gui builder? AWT, Swing, JavaFX & SWT 13
M Ganz simpler GUI-Builder mit Reflection AWT, Swing, JavaFX & SWT 8

Ähnliche Java Themen

Neue Themen


Oben