GridBagLayout

Status
Nicht offen für weitere Antworten.

DR

Bekanntes Mitglied
Hallo,

Ich habe mir ein Programm runtergeladen, in dem der GridBagLayout-Manager verdeutlicht wird:

Code:
import java.awt.*;
import javax.swing.*;

class GridBagLayoutDemo{
  static void addComponent( Container cont,
                            GridBagLayout gbl,
                            Component c,
                            int x, int y,
                            int width, int height,
                            double weightx, double weighty ){
    GridBagConstraints gbc = new GridBagConstraints();
    gbc.fill = GridBagConstraints.BOTH;
    gbc.gridx = x; gbc.gridy = y;
    gbc.gridwidth = width; gbc.gridheight = height;
    gbc.weightx = weightx; gbc.weighty = weighty;
    gbl.setConstraints( c, gbc );
    cont.add( c );
  }

  public static void main( String[] args ){
    JFrame f = new JFrame();
    f.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE );
    Container c = f.getContentPane();

    GridBagLayout gbl = new GridBagLayout();
    c.setLayout( gbl );

    addComponent( c, gbl, new JButton("1"), 0, 0, 2, 2, 1.0, 1.0 );
    addComponent( c, gbl, new JButton("2"), 2, 0, 1, 1, 0  , 1.0 );
    addComponent( c, gbl, new JButton("3"), 2, 1, 1, 1, 0  , 0   );
    addComponent( c, gbl, new JButton("4"), 0, 2, 3, 1, 0  , 1.0 );
    addComponent( c, gbl, new JButton("5"), 0, 3, 2, 1, 0  , 0   );
    addComponent( c, gbl, new JButton("6"), 0, 4, 2, 1, 0  , 0   );
    addComponent( c, gbl, new JButton("7"), 2, 3, 1, 2, 0  , 0   );

    f.setSize( 300, 200 );
    f.setVisible( true );
  }
}

Das Problem ist jetzt aber, dass ich nicht bei dem "addComponent" weiter komme. Ich verstehe nicht so ganz was die Zahlen in der Klammer bedeuten! Kann mir da vielleicht jemand eine kleine Auskunft geben?
Danke jetzt schonmal für die Hilfe!

MfG DR
 

Acha

Bekanntes Mitglied
Du hast in Deinem Codebeispiel doch die Methode
Code:
addComponent(...)
mit 9 Eingabeparametern (wenn ich richtig gezählt habe) .
Weiter unten in Deinem Hauptprogramm
Code:
public static void main(...){...}
rufst Du die Methode
Code:
addComponent(...)
eigentlich nur auf und übergibst die geforderten Eingabeparameter in der richtigen Reihenfolge. Die "Zahlen" sind also z.B. eine X- oder Y-Koordinate, eine Höhe oder Länge, ... !

Ich hoffe, meine Erklärung konnte etwas Klarheit bringen! :meld:

MFG

Acha
 

DR

Bekanntes Mitglied
Ja das Problem ist ja viel mehr, dass ich nicht weis, wie man die Zahlen setzen muss, weil bei manchen passiert überhaupt nichts und bei anderen habe ich lange ausprobieren müssen, damit zumindestends Annähernd der gewünschte Effekt erziehlt wird. Kann mir das jemand ein bisschen erläutern?
 

Leroy42

Top Contributor
x := Spaltenposition
y := Zeilenposition
width := Anzahl der Spalten über den sich die Zelle erstrecken soll
height := Anzahl der Zeilen über die sich die Zelle erstrechen soll.
weightX := Horizontaler Ausdehnungsfaktor
weightY := Vertikaler Ausdehnungsfaktor

addComponent( c, gbl, new JButton("1"), 0, 0, 2, 2, 1.0, 1.0 );
An Position (0,0) "oben links" erstreckt sich über 2 spalten und 2 Zeilen, wächst/schrumpft vertikal und horizontal

addComponent( c, gbl, new JButton("2"), 2, 0, 1, 1, 0 , 1.0 );
An Position (2,0) "oben, 3. von linkss" erstreckt sich über 1 spalte und 1 Zeile, wächst/schrumpft vertikal und horizontal


Die "Gewichte" werden pro Spalte/Zeile addiert und dann verteilt.


Beispiel:

0.0, 1.0, 0.0 bedeutet die äußeren Zellen verändern sich nicht, die mittlere bekommt den gesamten Raum

0.25, 0.5, 0.25 bedeutet die äußeren bekommen jeweils 25% des gesamten Raums, die mittlere die Hälfte.

Vielleicht einfach mal ein bischen mit den Werten für weightX/weightY herumspielen.
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
M Erstellen eines insets Objekts, GridBagLayout Java Basics - Anfänger-Themen 13
AnnaBauer21 GridBagLayout JLabel weightx: Unterschiedliche Breite mit & ohne Text Java Basics - Anfänger-Themen 6
B Image laden im GridBagLayout Java Basics - Anfänger-Themen 3
A GridBagLayout Fehler Java Basics - Anfänger-Themen 7
S Gridbaglayout Problem Java Basics - Anfänger-Themen 2
B GridBagLayout in der oberen rechten Ecke starten statt mittig Java Basics - Anfänger-Themen 2
L Das erste Mal GridBagLayout - wie geht das? Java Basics - Anfänger-Themen 5
J Gridbaglayout Java Basics - Anfänger-Themen 2
S Swing, Gridbaglayout Panel in Panel;funzt nicht!! Java Basics - Anfänger-Themen 3
K GridBagLayout Java Basics - Anfänger-Themen 7
L Fenster winzig klein durch GridBagLayout Java Basics - Anfänger-Themen 3
R GridBagLayout funktioniert nicht Java Basics - Anfänger-Themen 3
Y add Funktion für GridBagLayout zeigt Button nicht an Java Basics - Anfänger-Themen 3
L Swing GridBagLayout Java Basics - Anfänger-Themen 3
M GridBagLayout-Problem Java Basics - Anfänger-Themen 13
S GridBagLayout neue Objekte hinzufügen Java Basics - Anfänger-Themen 3
N JPanel - Gridbaglayout Java Basics - Anfänger-Themen 11
T GridBagLayout Autoanpassung Java Basics - Anfänger-Themen 6
X GridBagLayout Komponenten Anordnungsproblem Java Basics - Anfänger-Themen 4
S JTable in GridBagLayout zwingen Java Basics - Anfänger-Themen 2
S GridBagLayout: Problemchen Java Basics - Anfänger-Themen 2
Antoras weightx bei GridBagLayout Java Basics - Anfänger-Themen 2
C GridBagLayout Java Basics - Anfänger-Themen 6
J JButtons mit GridBagLayout anordnen Java Basics - Anfänger-Themen 9
I Swing-Komponenten-Größe im GridBagLayout beschränken Java Basics - Anfänger-Themen 2
G GridBagLayout und JTable Java Basics - Anfänger-Themen 2
N GridBagLayout: gleichmäßige verteilung von Komponenten Java Basics - Anfänger-Themen 23
D GridbagLayout Java Basics - Anfänger-Themen 16
G GridBagLayout Java Basics - Anfänger-Themen 3
G GridBagLayout einstellen Java Basics - Anfänger-Themen 5
W GridBagLayout und JTable Java Basics - Anfänger-Themen 4
C GridBagLayout BIld an variabler Stelle einfügen Java Basics - Anfänger-Themen 2
K Gridbaglayout, wie geht das? Java Basics - Anfänger-Themen 2
D GridBagLayout Java Basics - Anfänger-Themen 2
G GridBagLayout -> Wie werden Elemente "zentriert&quot Java Basics - Anfänger-Themen 7
J Problem mit GridBagLayout und JPanel Java Basics - Anfänger-Themen 4
M Problem mit Aktualisierung von GridBagLayout Java Basics - Anfänger-Themen 2
T ungewollte zentrierte Ausrichtung im Gridbaglayout Java Basics - Anfänger-Themen 5
M Problem mit GridBagLayout Java Basics - Anfänger-Themen 3
R GridBagLayout und JTextField: Textfeld ist viel zu schmal Java Basics - Anfänger-Themen 4
C Size JTextField in GridBagLayout Java Basics - Anfänger-Themen 2
J image im gridbaglayout? Java Basics - Anfänger-Themen 2
H GridBagLayout Java Basics - Anfänger-Themen 2
C Button in GridBagLayout einstellen Java Basics - Anfänger-Themen 4
K GridBagLayout, JFrame und Scrollen Java Basics - Anfänger-Themen 4
G GridBagLayout Java Basics - Anfänger-Themen 5
ShapeShifter GridBagLayout Java Basics - Anfänger-Themen 7
M GridBagLayout und enthaltende komponenten Java Basics - Anfänger-Themen 5
G GridBagLayout wie? Grundgerüst leicht komplex. Java Basics - Anfänger-Themen 2
G Linie/Gitter in GridBagLayout Java Basics - Anfänger-Themen 4
G GridBagLayout: Verständnisproblem Java Basics - Anfänger-Themen 5
P GridBagLayout Java Basics - Anfänger-Themen 2

Ähnliche Java Themen

Neue Themen


Oben