GridBagLayout

st-ash

Grünschnabel
Tach erstmal,
bin neu hier im Forum und weiß auch nicht ob ich hier im richtigen Menü bin.

Lerne seit ein paar Wochen Java (in der Arbeit) und tu mir halt noch ein bisschen schwer, ihr kennt das vielleicht noch.

Brauch jetzt für eine Aufgabe in der Arbeit unbedingt das GridBagLayout, kenne mich aber mit diesem überhaupt nicht aus.

Kennt ihr vielleicht ein paar Seiten im Internet wo ich eine schöne, übersichtliche und strukturierte Einleitung bzw. Erklärung zum GridBagLayout bekomm.

vielen dank für die hilfe

mfg st-ash
 
Moin,
eine ausführliche Anleitung kenne ich nicht, selbst in dem ansonsten guten Buch "Java Swing" von O'Reilly ist dazu nicht viel zu finden. Die meisten empfehlen sonst noch die Java-Insel oder Handbuch der Java-Programmierung. Ich weiß nicht, über wie viel Zeit und Interesse Du verfügst, Dich selbst mit den Treffern einer Forumssuche hier nach "GridBagLayout" auseinander zu setzen, aber Du wirst nicht drum herum kommen, selbst auszuprobieren. Erst damit versteht man die Auswirkungen der einzelnen Werte.
 
also zum gridbaglayout gibts zwar massig tuts und sowas, aber irgendwie blick ich da auch nich durch und ich bekomm damit nix auf die reihe....

nirgendwo ist wirklich erklärt was nun weigthx, gridx und gridwidth genau machen...

vielleicht kann mir wer mal nen beispiel geben für eine zeile mit 5 spalten und spalte 1 und 5 sollen den restlichen platz bekommen der bleibt. ich hab das so verstanden das man mit gridx die spalten setzt, aber ich bekomm irgendwie keine formatierung hin wenn ich es so mache

Code:
.....
GridBagConstraints c= new GridBagConstraints();
c.fill = GridBagConstraints.VERTICAL;
c.gridx=1;
name = new JLabel();
g.setConstraints(name, c);
this.add(name);
c.gridx=2;
name2 = new JLabel();
g.setConstraints(name2, c);
this.add(name2);
....

dabei pappen aber dann alle 5 label mittig aneinander und es sieht eher wie das flowlayout aus.....

ich hoffe ihr versteht das problem und könnt helfen denn langsam hab ich keine ideen mehr
 
bl4ck29 hat gesagt.:
vielleicht kann mir wer mal nen beispiel geben für eine zeile mit 5 spalten und spalte 1 und 5 sollen den restlichen platz bekommen der bleibt. ich hab das so verstanden das man mit gridx die spalten setzt, aber ich bekomm irgendwie keine formatierung hin wenn ich es so mache

Setz mal für diese beiden Komponenten
Code:
GridBagConstraints c= new GridBagConstraints();
c.fill = GridBagConstraints.NONE;
c.weightx = 0.0;

und für die anderen Komponenten
Code:
GridBagConstraints c= new GridBagConstraints();
c.fill = GridBagConstraints.HORIZONTAL;
c.weightx = 1.0;
 
ah ok das sieht schonmal besser aus als vorher...

...aber das zweite label klebt nun dirkt am ersten und irgendwie bekommen doch die mittleren mit c.fill = GridBagConstraints.HORIZONTAL den platz oder nicht ? müssten nich das erste + letzte label c.fill = GridBagConstraints.VERTICAL haben und die anderen NONE
 
Zuletzt bearbeitet:
>...aber das zweite label klebt nun dirkt am ersten

Die Ausrichtung kannst Du mit anchor regeln.

>und irgendwie bekommen doch die mittleren mit c.fill = GridBagConstraints.HORIZONTAL den platz oder nicht ?

Klar. So hatte ich Dich auch verstanden.

>müssten nich das erste + letzte label c.fill = GridBagConstraints.VERTICAL haben und die anderen NONE

Vertical? Wofür? (vertical = y-Richtung) Wenn die anderen NONE bekommen und das erste und letzte HORIZONTAL, erhalten das erste und letzte Label nicht den Platz, der übrig bleibt, sondern die breiten sich so weit aus, wie es nur geht und quetschen die anderen zusammen.
 
erstmal besten dank für deine hilfe....ich glaub so langsam hab ich verstanden wie das layout funktioniert und ich habs nun auch hinbekommen alles so aufzuteilen wie ich es wollte
 
Zurück