Grafische Oberflächen mit Java - GUI Builder oder von Hand?

G

Ghuy

Gast
Hi,

ich hab des öfteren mit AWT und Swing Oberflächen zusammen gebastelt, ohne Editor, sondern direkt im Source-Code.
Ich bin bei weitem kein Programmier-Gott, aber ich hab durch die zig-tausend Elemente irgendwann die Sachen nicht mehr gepflegt bekommen, weil eine kleine Änderung extrem viel Änderungen nach sich zog, weil alles angefasst werden musste (oder vieles)

Programmiert man überhaupt noch guis per Hand? Oder lieber mit gui-editoren und "mausklickerer" - falls ja, welchen Editor sollte man nehmen?

Wie erstellt man am besten GUIs?
 
F

Firephoenix

Gast
Hi,
ein Thema und X Antworten.

Zuerst einmal zu den Gui-Editoren:
Ich denke da werden andere auch noch genauer drauf antworten können, grob gesagt kann man mit den meisten von diesen Tool recht schnell brauchbare Oberflächen zusammenklicken, kriegt dannach aber ab und an Probleme wenn man im Code etwas ändern will.

Dann zum selbst Programmieren:
Ich denke auch hier sollte man wieder unterscheiden was genau man haben will.
Meistens kommt man mit dem Border und dem Gridlayout gut hin, ab und an auch mit dem Flowlayout und dem Nullayout.

Will man z.b. ein Panel, das in der Mitte irgendwas zeichnen soll, oben noch paar Knöpfe bietet und links vielleicht ein kleines Menü, kann man dem einfach ein BorderLayout verpassen, in den North für die Knöpfe steckt man ein Panel mit GridLayout und für das Menü an der Seite vielleicht noch ein Border oder ein Grid.
Damit erreicht man mit 1-2 Schachtelungen schon recht brauchbare Gui-Ergebnisse die in den meisten Standard-Fällen hinlangen ohne x Zeilen Code zu verbraten.
Manchmal reicht das aber nicht mehr und die Layouts müssen flexibler gestaltet werden, so sollen z.B. irgendwelche Komponenten genauer auf die Größe von anderen Reagieren und dabei vielleicht sogar noch verschiedene Seitenverhältnisse beibehalten.
An dieser Stelle könnte man auf das GridBagLayout zurückgreifen, mit dem man bei sowas recht gute Ergebnisse erzielen kann - arbeitet man zum ersten Mal damit kann man sich auf ein paar Stunden Tutorials und Frust freuen weil die Oberfläche absolut nicht das macht was sie soll - aber auch zu dem Ding findet man hier gute Tutorials und mit etwas Einarbeiten kann man damit auch gut arbeiten.
Die letzte Möglichkeit wäre noch die Gui zum Großteil selbst zu zeichnen, was vorrangig bei grafisch aufwändigeren Applikationen verwendet werden sollte (Bei Spieleclients z.b. findet man im Menü fast nie JButtons o.ä., dort werden meistens eigene Grafiken, evtl sogar mit Effekten verwendet).

Zeig doch einfach mal her was du machen willst (evtl ne kleine Skizze mit Paint) und was du bereits hast, dann können wir dir sicher weiterhelfen.
Gruß
 

Kr0e

Gesperrter Benutzer
Nun, also vlt sieht man keinen "normalen" JBUtton ... Aber man kann ja z.B. beim Button die Option setContentAreaFilled(false) nutzen und schon hat man nicht diesen langweiligen Standard-Grau-Hintergrund. Die Bilder werden AFAIK dennoch angezeigt, was auch ziemlich hübsch ist... Dann noch einen Font wählen, der zum spiel past... Generell bietet einem Swing schon derat viele Möglichkeiten...

Kurz zu den Editoren: Ich denke auch, dass keine professionelle Software ohne einen Editor erstellt... Es gibt viele gute bis mittelgute kostenlose Editoren... IMHO ist der beste & kostenlose "Matisse GUI Builder", welcher bei Netbeans direkt eingebaut ist. Für Eclipse gibts ein paar kostenlose, die sind aber Murks, wie ich finde und ein paar richtig gute, kommerzielle Produkte...

Von Hand würd ich nichts mehr machen... Zeit ist Geld ;)
 
T

Tomate_Salat

Gast
Swing und AWT nicht mischen. Wieso? Schau hier ins FAQ da ist ein Beitrag dazu.


ist. Für Eclipse gibts ein paar kostenlose, die sind aber Murks, wie ich finde und ein paar richtig gute, kommerzielle Produkte...
schon lange nicht mehr. Der WindowBuilder Pro ist mit abstand besser als der von Netbeans+dank Google kostenlos verfügbar.
 

Kr0e

Gesperrter Benutzer
@Tomate_Salat:

Hast Recht, wusste nicht, dass sich auf dem Sektor inzwischen was getan hat... Aber "mit Abstand besser" halt ich für Übertrieben.
 

Ebenius

Top Contributor
Ja, ich entwickle beruflich Java und schreibe hauptsächlich (ca. 60% der Arbeitszeit) Swing-GUIs. Sobald man ins Detail geht und komplexere GUIs in Teilen wieder verwenden will, kommt man schnell mit GUI-Buildern an deren Grenzen (nur meine Meinung). Je größer die GUI um so weniger will ich einen GUI-Builder.

Wie viel Zeit drauf geht, hängt doch in der Regel nicht von dem Anordnen einiger Buttons oder dem erzeugen einzelner Event-Methoden ab. Der Hauptaufwand steckt doch im Zusammenspiel der Komponenten mit ihren Modellen und das kann Dir kein GUI-Builder abnehmen.

Ebenius
 
T

Tomate_Salat

Gast
Hast Recht, wusste nicht, dass sich auf dem Sektor inzwischen was getan hat... Aber "mit Abstand besser" halt ich für Übertrieben.

ich kenne beide. Meiner Meinung nach ist er es. Er produziert lesbareren Code, ist flexibler, unterstützt mehr Frameworks, kommt mit manuellen Änderungen klar und liefert von sich aus einige Bibliotheken mit + bindet sie bei bedarf ein. Ob der Netbeans-Editor Databinding kennt, weiß ich nicht, aber das kann WB-Pro auch.

Ich habe vorher auch mit dem Netbeans-Editor gearbeitet. Fand ich bis dato auch am besten, naja bis ich eben WB-Pro gesehen habe.


Der Hauptaufwand steckt doch im Zusammenspiel der Komponenten mit ihren Modellen und das kann Dir kein GUI-Builder abnehmen.
Swing Data Binding - Google Web Toolkit - Google Code ... dich bekehr ich auch noch :joke:
 
Zuletzt bearbeitet von einem Moderator:

Kr0e

Gesperrter Benutzer
Typisch Google... Da denkt man, man kennt alles oder bzw hat nen groben Überblick... Und dann kommt Google wieder mit einem super-duper-bis-dato-einzigartigen-Produkt daher... Sieht wirklich interssant aus... Ich sehs mir auch mal an,..
 
T

Tomate_Salat

Gast
Typisch Google... Da denkt man, man kennt alles oder bzw hat nen groben Überblick... Und dann kommt Google wieder mit einem super-duper-bis-dato-einzigartigen-Produkt daher... Sieht wirklich interssant aus... Ich sehs mir auch mal an,..
Noch viel schöner. Das Produkt war vorher mal ein Kostenpflichtiges (zusätzlich mit anderen Tools). Google hat gesagt: diese Tools sollte jedem Entwickler zu verfügung stehen und hat die Entwicklerfirma gekauft und vertreibt die Produkte jz kostenfrei ... ich mag google :)

Na wir schauen mal, ob Du das schaffst. ;-)
Klingt wie eine Herausforderung :). Aber einen Blick kannste ja mal drauf werfen, denn Hey, es ist kostenfrei :) und das Databinding ist ne super Sache. Braucht zwar ein wenig Einarbeitung, aber man kann damit wirklich schnell Zusammenspiele abbilden. Und was das Tool nicht kann, das brauchste eh nicht :D
 
G

Gast2

Gast
Wegwerf Prototypen sind mit einem GUI-Builder okay...

Alles andere sollte man von Hand machen, da man viel mehr Möglichkeiten hat und die Kunden eh immer besondere Wünschen haben, die man sonst nicht abbilden kann.

Ich baue Swing + EclipseRCP per Hand. Man braucht defintiv nicht länger als mit einem GUI-Builder.
 
U

Unregistriert

Gast
Wie viel Zeit drauf geht, hängt doch in der Regel nicht von dem Anordnen einiger Buttons oder dem erzeugen einzelner Event-Methoden ab. Der Hauptaufwand steckt doch im Zusammenspiel der Komponenten mit ihren Modellen und das kann Dir kein GUI-Builder abnehmen.
dann kommt Google wieder mit einem super-duper-bis-dato-einzigartigen-Produkt daher
Äh naja nichts für ungut, aber data binding libraries gibt's auch für java schon seit langem wie Sand am Meer, einzigartig ist daran nichts. Soweit ich weiß können Netbeans und IntelliJ das auch seit langem von haus aus im GUI Builder einsetzen.
 

Dit_

Bekanntes Mitglied
Ich baue ebenfalls die GUIs "von Hand", würde ich auch jedem empfehlen. Ich verwende TableLayout. Mit der Zeit habe ich bemerkt, dass ich immer wieder die gleichen Componenten brauche, so habe ich meine eigene "mini-Factory-Lib" zusammengestellt. Dadurch kann ich jetzt viel viel schneller eine ordentliche Gui zusammenbasteln.
 

izR2rFTw

Neues Mitglied
Hallo Ebenius,

mich würde mal interessieren, wie du komplexe GUIs von Hand und ohne GUI-Builder realisiert bekommst. Kannst du mal ein paar Code-Beispiele geben?
 

rme

Top Contributor
Ich frage mich, wie man komplexe GUIs mit GUI-Buildern hinbekommen soll, sodass der Code danach noch wartbar ist. Vielleicht gibt es ein Missverständnis darüber, was eine GUI komplex macht? Oder anders gefragt: Ab wann gibt es für dich eine Rechtfertigung, einen GUI-Builder einzusetzen? Hast du vielleicht einen Screenshot einer GUI, die bei dir unter komplex fällt?

Ich meine, wenn zu viele Sachen gleichzeitig sichtbar sind, ist das doch auch für den Anwender unschön. Ich benutze normalerweise Tabs oder ähnliches, die ein paar Komponenten anzeigen. Jeder Tab wäre dann ein Panel oder eine Komponente einer eigenen Klasse, also ist im Code alles sauber getrennt und keine Klasse hat mehr als vielleicht 200 Zeilen.
 
Zuletzt bearbeitet:
Ähnliche Java Themen
  Titel Forum Antworten Datum
S Grafische Oberflächen gehen nicht! AWT, Swing, JavaFX & SWT 7
MaxG. Swing Dynamisch grafische Objekte erzeugen AWT, Swing, JavaFX & SWT 12
D Grafische Komponenten komplett neu aufbauen (Neukonstruktion) AWT, Swing, JavaFX & SWT 5
E Swing Grafische Oberfläche zur Ordnerauswahl AWT, Swing, JavaFX & SWT 6
S Grafische Darstellung von signalen AWT, Swing, JavaFX & SWT 2
M grafische objekte erstellen und bewegen AWT, Swing, JavaFX & SWT 4
B Grafische Anordnung der Elemente AWT, Swing, JavaFX & SWT 2
G Grafische Kalendar-Box? AWT, Swing, JavaFX & SWT 2
M grafische Objekte mit Listener versehen AWT, Swing, JavaFX & SWT 3
E Frage? Warum funktioniert die grafische Ausgabe nicht? AWT, Swing, JavaFX & SWT 4
R Grafische Benutzereingabe in For-Schleife AWT, Swing, JavaFX & SWT 8
M Grafische Objekte beliebig auf einer Oberfläche verschieben AWT, Swing, JavaFX & SWT 3
M Grafische Buttons in Java (Einsteiger-Frage) AWT, Swing, JavaFX & SWT 8
T Eigene grafische Oberfläche AWT, Swing, JavaFX & SWT 7
X Swing Swing Oberflächen mit WindowBuilder Pro AWT, Swing, JavaFX & SWT 4
T AWT verschiedene Oberflächen programmieren AWT, Swing, JavaFX & SWT 5
M Programmierstiel ineinander geschachtelte Swing Oberflächen AWT, Swing, JavaFX & SWT 12
A Design Problem bei verschiedenen Oberflächen AWT, Swing, JavaFX & SWT 3
K Graphische Oberflächen in Java? AWT, Swing, JavaFX & SWT 2
M Womit die Oberflächen zusammenklicken? AWT, Swing, JavaFX & SWT 6
Z Mehrere Oberflächen nacheinander? AWT, Swing, JavaFX & SWT 3
S Aufbau mehrerer verschiedener grafischer Oberflächen AWT, Swing, JavaFX & SWT 2
Juelin Für Java-Spezialisten AWT, Swing, JavaFX & SWT 4
Juelin Java <-> Delphi AWT, Swing, JavaFX & SWT 3
H Exceptions seit java: 1.6.0_65 Umstellung AWT, Swing, JavaFX & SWT 3
H Exception: java.lang.ClassCastException AWT, Swing, JavaFX & SWT 2
M JavaFX java.lang.RuntimeException: Error initializing QuantumRenderer: no suitable pipeline found AWT, Swing, JavaFX & SWT 5
J Java GUI Dropdown-Menü anzeigen AWT, Swing, JavaFX & SWT 5
M Eigene Java Klasse für allgemeine Grafikelemente AWT, Swing, JavaFX & SWT 8
thor_norsk Java - Allgemeine - Frage AWT, Swing, JavaFX & SWT 14
W Kennt jemand Dear ImGui (und den Java-Wrapper dazu)? AWT, Swing, JavaFX & SWT 0
B Java Projekt mit JavaFX und jfoenix ausführbar machen AWT, Swing, JavaFX & SWT 46
D JAVA Schieberegler AWT, Swing, JavaFX & SWT 6
N JavaFX Einfacher Taschenrechner mit Scene Builder und Java FX AWT, Swing, JavaFX & SWT 0
Jose05 Aus einer normalen Java Klasse eine FXML-Klasse laden AWT, Swing, JavaFX & SWT 12
S Welches Java Layout sollte ich verwenden? AWT, Swing, JavaFX & SWT 3
B Actionlistener mit Java Swing AWT, Swing, JavaFX & SWT 2
P Fehlermeldung: Error: Could not find or load main class set Caused by: java.lang.ClassNotFoundException: set AWT, Swing, JavaFX & SWT 5
Encera Java FX im Eclipse-Marketplace nichtmehr auffindbar AWT, Swing, JavaFX & SWT 6
_user_q Versionscode aus build.gradle in Java-Klasse ausgeben lassen AWT, Swing, JavaFX & SWT 14
M Java Dateien kopieren mit Fortschrittsbalken AWT, Swing, JavaFX & SWT 13
M Frage zu Java Bundesligaverwaltung AWT, Swing, JavaFX & SWT 7
_user_q Gibt es eine Möglichkeit, in Java alle möglichen Zeichen automatisch tippen zu lassen? AWT, Swing, JavaFX & SWT 13
E 3D-Grafik Java Fatal error bei LWJGL AWT, Swing, JavaFX & SWT 2
Heldderschatten Java Events und Interfaces AWT, Swing, JavaFX & SWT 18
volcanos Scrollen: JScrollPane mit Graphics g und Java-Fonts extends Frame ? AWT, Swing, JavaFX & SWT 5
sserio Java Fx - Problem AWT, Swing, JavaFX & SWT 3
U Warum wird zweimal die Affinetransformation estellt (2Dgraphics, Java)? AWT, Swing, JavaFX & SWT 31
U was bewirkt die methode fill und unterschied zu anderen fill Methoden in 2dgraphics? (Java)? AWT, Swing, JavaFX & SWT 6
DonBronson Java Graphics bewegbar machen (Drag&Drop) AWT, Swing, JavaFX & SWT 3
Yonnig Lokale HTML-Datei in Java GUI rendern AWT, Swing, JavaFX & SWT 4
E Java-TexturePaint sehr langsam AWT, Swing, JavaFX & SWT 9
N Java MySQL Datenbank durchsuchen? AWT, Swing, JavaFX & SWT 7
maximstein JavaFX WebView - java.lang.NoSuchMethodError: 'boolean com.sun.prism.ResourceFactory.isDisposed()' AWT, Swing, JavaFX & SWT 4
Splayfer Custom Font in AttributedString Java AWT, Swing, JavaFX & SWT 4
imawake Java Paket-Tracking Programm 📦 AWT, Swing, JavaFX & SWT 7
izoards *.doc Seitenränder per Java setzen... AWT, Swing, JavaFX & SWT 14
T FXML Datei in Java Code einbinden: javafx.fxml.LoadException AWT, Swing, JavaFX & SWT 2
J Key-Listener in Java AWT, Swing, JavaFX & SWT 37
J Java Datei durch CMD mit Parameter ausführen AWT, Swing, JavaFX & SWT 1
N Java Mouse Listiner macht alles zusammen AWT, Swing, JavaFX & SWT 4
J Java FX NullPointerException, ObservableList wird in View nicht angezeigt.. AWT, Swing, JavaFX & SWT 34
T Exception in thread "main" java.lang.NoClassDefFoundError AWT, Swing, JavaFX & SWT 4
M Error occurred during initialization of boot layer java.lang.module.FindException: Module javafx.controls not found AWT, Swing, JavaFX & SWT 14
AmsananKING Java Menü-Problem AWT, Swing, JavaFX & SWT 1
T Swing DPI-Skalierung und Java 2D unter Java 11 (und Windows 10) AWT, Swing, JavaFX & SWT 2
J Spiel mit Java AWT, Swing, JavaFX & SWT 9
I AWT java.awt.FileDialog - "coffee cup"-Icon lässt sich nicht ersetzen AWT, Swing, JavaFX & SWT 14
O Ein Java-Programm mit Swing steuern AWT, Swing, JavaFX & SWT 1
izoards Java FX Window Event SHOWING AWT, Swing, JavaFX & SWT 17
N FXMLLoader.load java.lang.RuntimeException: Gradle AWT, Swing, JavaFX & SWT 2
T Java GUI - Würfel Programm AWT, Swing, JavaFX & SWT 6
JojoSand Java Programm wird nicht gestartet - keinen Fehlerhinweis AWT, Swing, JavaFX & SWT 9
dtr84 JavaFX/OpenJFX mittels Apache Ivy einbinden (Java 11) AWT, Swing, JavaFX & SWT 18
M Jogl und Java 3d AWT, Swing, JavaFX & SWT 0
S0PEX JavaFX Java 8 auf 15 migrieren OpenJFX mit Gradle eingebunden, jedoch nicht gefunden !? AWT, Swing, JavaFX & SWT 4
I Gui in bestehendes Java-Programm AWT, Swing, JavaFX & SWT 11
V Java-Zeichenfeld mit AWT AWT, Swing, JavaFX & SWT 3
N java Gui friert scheinbar zufällig ein AWT, Swing, JavaFX & SWT 5
T Anderen Java Code durch Code kompilieren und Fehler in Label ausgeben AWT, Swing, JavaFX & SWT 5
P Java Fx einrichten AWT, Swing, JavaFX & SWT 2
pkm Frage wegen java.lang.IllegalStateException bei DocumentListener AWT, Swing, JavaFX & SWT 4
S JavaFX Java Custom Node Grafik zurückgeben AWT, Swing, JavaFX & SWT 2
MiMa Java und JavaFX 13 läuft endlich AWT, Swing, JavaFX & SWT 4
N eclipse Java, bilder benutzten Funktioniert nicht AWT, Swing, JavaFX & SWT 6
Trèfle Ausklappbare Diagramme in Java AWT, Swing, JavaFX & SWT 1
R Java, GUI, Hintergrundbild, Image, AWT, Swing, JavaFX & SWT 4
K JAVA FX Constraints AWT, Swing, JavaFX & SWT 2
F Java FX und webcam AWT, Swing, JavaFX & SWT 1
T Wie kann man in java aufwendige grafiken programmieren AWT, Swing, JavaFX & SWT 1
M Swing Java Swing/AWT Combobox Bug AWT, Swing, JavaFX & SWT 3
S Java GUI durch variable Größe einer Map anpassen AWT, Swing, JavaFX & SWT 3
J Java SWT Tabelleninhalt formattieren AWT, Swing, JavaFX & SWT 10
Blender3D Falsche Werte mit Java Toolkit Screensize AWT, Swing, JavaFX & SWT 4
K Swing AWT-EventQueue-1 java.lang.NoClassDefFoundError bei setVisible(true) AWT, Swing, JavaFX & SWT 3
A Java Programm gestalten AWT, Swing, JavaFX & SWT 4
B [Problem] Java öffnet Word-Datein nicht AWT, Swing, JavaFX & SWT 14
S Swing Java Swing AWT, Swing, JavaFX & SWT 6
I Java Bildfarbe ändern wie bei Photoshop AWT, Swing, JavaFX & SWT 9
R JavaFX Java FXML Vererbung in Klassen AWT, Swing, JavaFX & SWT 9

Ähnliche Java Themen

Neue Themen


Oben