Formular in GridLayout ?

M

martinator

Gast
Hallo zusammen,

ich bin etwas am Verzweifeln mit den Layout Managern.

Ich möchte innerhalb eines JPanels ein Formular darstellen (2 Spalten, beliebig viele Zeilen)

Nun habe ich gedacht, ich kann das doch ganz Geschickt per GridLayout Lösen.

Allerdings stört mich extrem, dass das Formular sich immer in Y-Richtung abhängig von der Anzahl der Zeilen "streckt"
(mit Gridlayout(0,2))

Wenn ich eine feste anzahl von Zeilen eingebe, erhalte ich zwar eine angenehme Zeilenhöhe, er benutzt jedoch nurnoch 1 Spalte.


Außerdem hätte ich gerne links und rechts vom Formular einen kleinen Abstand, weiß jemand wie ich soetwas bewerkstelligen kann?



Vielen Dank
 

André Uhres

Top Contributor
Wenn ich eine feste anzahl von Zeilen eingebe, erhalte ich zwar eine angenehme Zeilenhöhe, er benutzt jedoch nurnoch 1 Spalte.

Außerdem hätte ich gerne links und rechts vom Formular einen kleinen Abstand, weiß jemand wie ich soetwas bewerkstelligen kann?

Hallo Martinator,

beim GridLayout mit fester Zeilenzahl wird die zweite Spalte erst angefangen, wenn die erste voll ist. Einen Abstand vom Rand bekommen wir, indem wir einen EmptyBorder beim JPanel setzen.

Gruß,
André
 

andiv

Bekanntes Mitglied
Am Besten geeignet wäre das FormLayout von JGoodies. Damit bekommt man mit wenig Aufwand recht hübsche Formulare. Sehr empfehlenswert!
 
C

Camino

Gast
Wenn man sich ein bisschen mit GridBagLayout beschäftigt, bekommt man das auch damit problemlos und schick hin. Ist eigentlich garnicht so schwer oder kompliziert, wie oft behauptet wird oder wie es einem am Anfang erscheint. Ich hab in meiner Anwendung auch mehrere (zum Teil ziemlich umfangreiche und verschachtelte) Formulare. Hab mir einfach selbst eine Klasse FormularPanel gebaut, welche die Komponenten im GridBagLayout anordnet. Dann brauche ich nur noch so ein Panel erstellen und die Komponenten hinzufügen. Dieses FormularPanel hat sich so nach und nach weiter entwickelt, ist bestimmt noch nicht perfekt oder komplett. Aber ich werde das einfach noch weiter ausbauen. Letztlich komme ich dann wohl auch zu einem ähnlichen Ergebnis, wie TableLayout oder FormLayout. Und man lernt dabei ganz gut die Funktion und das Verhalten von GridBagLayout.

Gruss
Camino
 

andiv

Bekanntes Mitglied
@Camino: Natürlich geht es mit GridBagLayout auch (finde es auch gar nicht so schwer, aber der Code ist hässlich und lang). Vielleicht geht es sogar allein mit verschachtelten BorderLayouts. Entscheidend ist aber: Wie lang ist der benötigte Code für das Layout? Wie gut ist der Code wartbar? Lassen sich auch kompliziertere Formulare (z.B. viele Elemente die sich über mehrere Spalten erstrecken) noch einfach umsetzen? Und an dieser Stelle ist das FormLayout einfach kaum zu schlagen.
 
C

Camino

Gast
Na ja, als ich angefangen habe, mich mit dem GridBagLayout zu beschäftigen, musste ich auch erst mal nachschauen, wie das funktioniert, und fand es erstmal nicht so einfach. Das hat sich aber mit der Zeit geändert. Zu Beginn hatte ich irgendwo mal ein Beispiel gefunden, bei dem jemand eine Methode erstellt hatte, welche die Komponenten zum GridBagLayout hinzufügt. So hatte ich mir also überall, wo ich ein Formular brauchte, ein JPanel mit GBL erstellt, die Methode hinzugefügt und dann die erstellten Komponenten mit dieser add-Methode zum GridBagLayout hinzugefügt. Später, als ich feststellte, dass ich an mehreren Stellen in der Anwendung Formulare brauchte, hab ich mir das dann in eine eigenen Klasse ausgelagert.

Mein FormularPanel, also die Klasse, welche die Formulare (mit GridBagLayout) zusammenstellt, hat nur knapp über 80 Zeilen. Wie gesagt, ist bestimmt noch ausbaubar und kann verbessert werden. Dann erstelle ich mein Formular und füge die Komponenten hinzu. Alles eigentlich auch nicht gerade sehr lang und unübersichtlich.

z.B.:
Code:
JLabel label1 =  new JLabel();

FormularPanel form = new FormularPanel();
form.add( label1,  0,  0, 3, 1, 0.0, 0.0, 2, 17, FormularPanel.INSETS_LABEL );

// Methode add(Component, gridx, gridy, gridwidth, gridheight, weightx, weighty, fill, anchor, insets)
// übergibt die Werte für das GridBagLayout
 

André Uhres

Top Contributor
Ich geh mal davon aus, dass Martinator gerade erst damit anfängt, sich in die Layoutmanager einzuarbeiten. Von daher ist es meiner Meinung nach nicht besonders sinnvoll, ihn jetzt schon mit Sachen zu konfrontieren, die anscheinend über sein Ziel hinausgehen.

Gruß,
André
 
G

Gast2

Gast
Ich geh mal davon aus, dass Martinator gerade erst damit anfängt, sich in die Layoutmanager einzuarbeiten. Von daher ist es meiner Meinung nach nicht besonders sinnvoll, ihn jetzt schon mit Sachen zu konfrontieren, die anscheinend über sein Ziel hinausgehen.

Gruß,
André

Das FormLayout ist einfach und verständlich. Wenn es einmal benutzt, benutzt man nichts anderes mehr in Swing, außer bei einfachen Sachen das Box- und Borderlayout
 
G

Gast2

Gast
Damit projezierst du aber nur deine Meinung. Es spricht nichts gegen die Verwendung der Standard-LMs.

Und was genau ist schlimm daran?
Klar spricht was dagegen das GridBagLayout ist umständlich,veraltet und schwer wartbar.
Für das FormLayout spricht, dass es einen programatischen GUI-Bilder gibt und alles schön übersichtlich bleibt.
 

L-ectron-X

Gesperrter Benutzer
Und was genau ist schlimm daran?
Nichts... Nur würde ich nicht jedes Layout mit GridBagLayout lösen, genauso wenig, wie das FormLayout überall Sinn macht.

das GridBagLayout ist umständlich,veraltet und schwer wartbar.
Es ist sicher nicht trivial, aber meistens wird dieses Argument von Leuten ins Feld geführt, die das GridBagLayout nicht verstanden haben.

Wenn es dir vorrangig darum geht, einen schwierigen LM per Mausklick zu benutzen, findest du in Netbeans Matisse ein sehr mächtiges Werkzeug, das auch das GridBagLayout zu einem Kinderspiel macht.
 
G

Gast2

Gast
Nichts... Nur würde ich nicht jedes Layout mit GridBagLayout lösen, genauso wenig, wie das FormLayout überall Sinn macht.

Das sag ich ja mit den obigen 3 LM's die ich genannt habe evtl. noch TableLayout kannst du alles abbilden, was man benötigt.

Es ist sicher nicht trivial, aber meistens wird dieses Argument von Leuten ins Feld geführt, die das GridBagLayout nicht verstanden haben.

Ich verstehe das GridBagLayout und finde es nicht gut und verwende es auch nirgends!!!

Wenn es dir vorrangig darum geht, einen schwierigen LM per Mausklick zu benutzen, findest du in Netbeans Matisse ein sehr mächtiges Werkzeug, das auch das GridBagLayout zu einem Kinderspiel macht.

Ich würde (außer für einen Prototypen) nie eine GUI zusammenklicken. Da hast du mich falsch verstanden, ich sagte programmtischen GUI-Builder. Du hast einen GUI Builder den du programmatisch verwenden kannt. Sehr schönes Konzept.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
yvesdaeschle Wie Report mit fixem Formular AWT, Swing, JavaFX & SWT 2
A Ermittelter Wert auf Formular übertragen. AWT, Swing, JavaFX & SWT 2
N Formular für Suchanfragen in einer Datenbank AWT, Swing, JavaFX & SWT 3
B Swing Formular mit mehreren Elementen - wie die ActionListener-Verarbeitung lösen? AWT, Swing, JavaFX & SWT 2
F jpanel oder jframe Formular AWT, Swing, JavaFX & SWT 4
S Tabelle im selben Formular anzeigen AWT, Swing, JavaFX & SWT 6
N Formular mit GridBaglayout und Abstände von Labels AWT, Swing, JavaFX & SWT 2
P Formular mit n-Textfeldern generieren AWT, Swing, JavaFX & SWT 7
J -variable Formular Klasse AWT, Swing, JavaFX & SWT 2
R Zentral Veränderungen auf einer Maske/Formular abfragen AWT, Swing, JavaFX & SWT 6
G JTable aus anderem Formular aus aendern AWT, Swing, JavaFX & SWT 7
G "Formular" nachbilden AWT, Swing, JavaFX & SWT 7
M Frage bzgl. Formular-Design. AWT, Swing, JavaFX & SWT 2
G Formular erstellen ? AWT, Swing, JavaFX & SWT 3
E GridLayout auf ScrollPane AWT, Swing, JavaFX & SWT 4
thor_norsk GridLayout AWT, Swing, JavaFX & SWT 11
H Swing , GridLayout, Größenbestimmung der Komponenten im Layout AWT, Swing, JavaFX & SWT 8
M Swing GridLayout AWT, Swing, JavaFX & SWT 2
D [Swing] Anordnung von Komponenten mit GridLayout Manager AWT, Swing, JavaFX & SWT 13
pkm kryptisches Verhalten bei GridLayout AWT, Swing, JavaFX & SWT 4
K Swing GridLayout - x und y bei Mausklick ausgeben AWT, Swing, JavaFX & SWT 4
S GridLayout SWT: Anordnung Composites nebeneinander AWT, Swing, JavaFX & SWT 2
B GridLayout - wie am besten implementieren AWT, Swing, JavaFX & SWT 3
B GridLayout Basics AWT, Swing, JavaFX & SWT 1
L Eigene JComponent in GridLayout AWT, Swing, JavaFX & SWT 9
fLooojava GridLayout - Frage bezüglich Kachelgröße AWT, Swing, JavaFX & SWT 5
F JPanel "verschmelzen" GridLayout AWT, Swing, JavaFX & SWT 10
M LayoutManager GridLayout funktioniert nicht AWT, Swing, JavaFX & SWT 0
T LayoutManager GridLayout panel.setSize funktioniert nicht AWT, Swing, JavaFX & SWT 1
F Gridlayout AWT, Swing, JavaFX & SWT 6
A JPanel oder GridLayout Größe festsetzten AWT, Swing, JavaFX & SWT 4
X GridLayout JPanel austauschen AWT, Swing, JavaFX & SWT 2
A JFrame Größenänderung mit Maus und GridLayout AWT, Swing, JavaFX & SWT 10
J Button in GridLayout AWT, Swing, JavaFX & SWT 2
C LayoutManager Grafik soll nicht im GridLayout Skalieren AWT, Swing, JavaFX & SWT 3
L LayoutManager GridLayout verschiebt sich AWT, Swing, JavaFX & SWT 6
B GridLayout AWT, Swing, JavaFX & SWT 6
T Spaltengröße einzelner Spalten in Gridlayout festlegen AWT, Swing, JavaFX & SWT 3
Karuka Abstände im GridLayout ändern AWT, Swing, JavaFX & SWT 8
Karuka 2D-Grafik Bilder in GridLayout einfügen AWT, Swing, JavaFX & SWT 7
C Scollpane an dynamisches GridLayout anpassen? AWT, Swing, JavaFX & SWT 3
J Swing Bilder anzeigen in Gridlayout AWT, Swing, JavaFX & SWT 11
C Linien über GridLayout zeichnen AWT, Swing, JavaFX & SWT 3
K Probleme mit Gridlayout AWT, Swing, JavaFX & SWT 4
U Elemente im Panel zentrieren mit GridLayout AWT, Swing, JavaFX & SWT 3
Z Swing JButton erweitern/Gridlayout AWT, Swing, JavaFX & SWT 2
L Swing GridLayout AWT, Swing, JavaFX & SWT 4
lumo LayoutManager SWT GridLayout - Reihenfolge ändern AWT, Swing, JavaFX & SWT 7
C Swing GridLayout: Kann man die Spaltenbreiten variabel gestalten? AWT, Swing, JavaFX & SWT 4
J SWT Größe eines Composite mit Gridlayout festlegen AWT, Swing, JavaFX & SWT 2
Y Kein GantChart in einem GridLayout AWT, Swing, JavaFX & SWT 5
R LayoutManager Problem mit GridLayout AWT, Swing, JavaFX & SWT 5
F LayoutManager GridLayout 0/0 auf andere Ecke setzen AWT, Swing, JavaFX & SWT 4
Rudolf Swing Gridlayout und Grouper vorhanden? AWT, Swing, JavaFX & SWT 4
S SWT GridLayout scrollbar machen? AWT, Swing, JavaFX & SWT 7
A Gridlayout Vertikal anordnen AWT, Swing, JavaFX & SWT 6
D LayoutManager GridLayout, 2 labels nebeneinander AWT, Swing, JavaFX & SWT 8
B Swing GridLayout.add über 2 Spalten? AWT, Swing, JavaFX & SWT 7
R LayoutManager GridLayout verändert isch andauernd AWT, Swing, JavaFX & SWT 4
A Frage zu GridLayout AWT, Swing, JavaFX & SWT 4
B GridLayout und scrollbar AWT, Swing, JavaFX & SWT 5
J Swing Bild in GridLayout AWT, Swing, JavaFX & SWT 8
aze GridLayout: Keine automatische Ausdehnung AWT, Swing, JavaFX & SWT 2
M SWT keine Scrollbar bei widgets.List und GridLayout AWT, Swing, JavaFX & SWT 2
M Image an Gridlayout anpassen AWT, Swing, JavaFX & SWT 5
E SWT Problem mit Gridlayout AWT, Swing, JavaFX & SWT 3
G SWT GridLayout AWT, Swing, JavaFX & SWT 2
lumo SWT GridLayout - clear? AWT, Swing, JavaFX & SWT 4
T GridLayout Zeilen Hintergrund AWT, Swing, JavaFX & SWT 5
N Gridlayout macht Probleme AWT, Swing, JavaFX & SWT 3
L GridLayout verändert festgesetzte Größe der Komponenten AWT, Swing, JavaFX & SWT 12
S Gridlayout - Tabellenzeile "beenden" AWT, Swing, JavaFX & SWT 3
Dragonfire GridLayout Probleme AWT, Swing, JavaFX & SWT 4
A JLabel, Icons und GridLayout AWT, Swing, JavaFX & SWT 3
C JPanel-Array in GridLayout AWT, Swing, JavaFX & SWT 4
G SWT GridLayout AWT, Swing, JavaFX & SWT 3
N Gridlayout 2. Spalte füllen AWT, Swing, JavaFX & SWT 4
W Problem mit GridLayout AWT, Swing, JavaFX & SWT 11
K Problem mit nem GridLayout AWT, Swing, JavaFX & SWT 5
T GridLayout, zu wenig Platz zwischen Widgets AWT, Swing, JavaFX & SWT 3
T SWT/Eclipse Form Controls zur Laufzeit hinzufügen,GridLayout AWT, Swing, JavaFX & SWT 4
M GridLayout mit fester Größe möglich? AWT, Swing, JavaFX & SWT 3
E Einfache Frage zu GridLayout AWT, Swing, JavaFX & SWT 35
G Größe der einzelenen Felder im GridLayout einstellbar? AWT, Swing, JavaFX & SWT 5
P Canvas in JFrame mit GridLayout AWT, Swing, JavaFX & SWT 4
F GridLayout: verschiedene Spaltenbreiten AWT, Swing, JavaFX & SWT 2
S GridLayout ? AWT, Swing, JavaFX & SWT 5
D AutoResize bei GridLayout ausschalten? AWT, Swing, JavaFX & SWT 2
D GridLayout mit nur einer Spalte, aber n Zeilen AWT, Swing, JavaFX & SWT 2
E GridLayout seltsame Anordnungsstrategie AWT, Swing, JavaFX & SWT 6
S Problemen mit Canvas-Objekten im GridLayout AWT, Swing, JavaFX & SWT 8
L Grids benennen beim GridLayout AWT, Swing, JavaFX & SWT 5
S GridLayout mit sehr großen Abständen AWT, Swing, JavaFX & SWT 3
I SWT GridLayout AWT, Swing, JavaFX & SWT 5
V Frage zu GridLayout. AWT, Swing, JavaFX & SWT 3
P SWT GridLayout AWT, Swing, JavaFX & SWT 5
O gridlayout konstante größe AWT, Swing, JavaFX & SWT 3
TRunKX Problem mit dem GridLayout und den proportionen AWT, Swing, JavaFX & SWT 4
P SWT: GridLayout und Textfelder AWT, Swing, JavaFX & SWT 1
M GridLayout funktioniert nicht mehr. AWT, Swing, JavaFX & SWT 2

Ähnliche Java Themen

Neue Themen


Oben