GridBagLayout

Status
Nicht offen für weitere Antworten.

clou

Mitglied
Hallo!
Ich habe ein Gitter das 5 Spalten und 10 Zeilen haben soll. 5 Elemente sollen darin sein, ein Textfeld, drei Buttons und eine Textarea.

Die gesamte erste Zeile, beginnend in der ersten Spalte soll ein Textfeld stehen.
In der zweiten Zeile stehen alle Buttons hintereinander, der erste Button in der zweiten Spalte, der zweite Button in der dritten Spalte und der dritte Button in der vierten Spalte.
In der dritten Zeile bis zur 10. Zeile, beginnend in der ersten Spalte, soll die Textarea sein.

Ich bin der Meinung, dass mein Code stimmt, aber es passiert nicht das, was ich will. Textfeld stimmt. Aber die Buttons beginnen in der ersten Spalte anstatt in der zweiten. Und die Textarea ist nur eine einzige Zeile anstatt 8 Zeilen. Ich stelle mal diesen Teil rein und hoffe, mir kann jemand sagen, wo mein Denkfehler liegt.

Es soll also so aussehen:

1 Textfeld____________________________________________
2 _______Button1_Button2_Button3______________________
3 Textarea___________________________________________
4 Textarea___________________________________________
...
10 Textarea___________________________________________

Der Code lautet bisher so:

Code:
public Projekt()
  {

	//JTextField textfält;
	//JTextArea textarea;
	//JButton knapp1, knapp2, knapp3;
	JScrollPane scrollyta;
	JLabel lbl1, lbl2, lbl3;
	ImageIcon bild1, bild2;

		      text1 = "Java";
setSize(500, 400);
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        GridBagLayout gridbag = new GridBagLayout();
        GridBagConstraints constraints = new GridBagConstraints();
        JPanel pane = new JPanel();
        pane.setLayout(gridbag);

        // textfield
        buildConstraints(constraints, 0, 0, 5, 1, 100, 0);
        constraints.fill = GridBagConstraints.HORIZONTAL;
        JTextField textfält = new JTextField();
        gridbag.setConstraints(textfält, constraints);
        pane.add(textfält);

		// knapp1
        buildConstraints(constraints, 1, 1, 1, 1, 0, 0);
        constraints.fill = GridBagConstraints.NONE;
        constraints.anchor = GridBagConstraints.CENTER;
        JButton knapp1 = new JButton("Bild 1");
        gridbag.setConstraints(knapp1, constraints);
        pane.add(knapp1);

		// knapp2
        buildConstraints(constraints, 2, 1, 1, 1, 0, 0);
        constraints.fill = GridBagConstraints.NONE;
        constraints.anchor = GridBagConstraints.CENTER;
        JButton knapp2 = new JButton("Bild 2");
        gridbag.setConstraints(knapp2, constraints);
        pane.add(knapp2);

        // knapp3
		buildConstraints(constraints, 3, 1, 1, 1, 0, 0);
		constraints.fill = GridBagConstraints.NONE;
		constraints.anchor = GridBagConstraints.CENTER;
		JButton knapp3 = new JButton("Text area");
		gridbag.setConstraints(knapp3, constraints);
        pane.add(knapp3);

        // textarea
        buildConstraints(constraints, 0, 2, 5, 10, 100, 100);
		constraints.fill = GridBagConstraints.HORIZONTAL;
		JTextArea textarea = new JTextArea();
		gridbag.setConstraints(textarea, constraints);
        pane.add(textarea);

        // Content Pane
        setContentPane(pane);
        setVisible(true);
	 
   }

Danke schon mal. Ich hoffe, mir kann jemand helfen. Ach ja - wundert euch nicht über die Bezeichnungen. Das ist Schwedisch :)

LG
Clou
 

clou

Mitglied
buildConstraints sieht so aus:

Code:
void buildConstraints(GridBagConstraints gbc, int gx, int gy,
        int gw, int gh, int wx, int wy) {

        gbc.gridx = gx;
        gbc.gridy = gy;
        gbc.gridwidth = gw;
        gbc.gridheight = gh;
        gbc.weightx = wx;
        gbc.weighty = wy;
    }
 

Ebenius

Top Contributor
Ich bin der Meinung, dass mein Code stimmt, aber es passiert nicht das, was ich will. Textfeld stimmt. Aber die Buttons beginnen in der ersten Spalte anstatt in der zweiten. Und die Textarea ist nur eine einzige Zeile anstatt 8 Zeilen. Ich stelle mal diesen Teil rein und hoffe, mir kann jemand sagen, wo mein Denkfehler liegt.
Die Buttons stehen nicht in der ersten, sondern in der zweiten Spalte. Die erste Spalte ist aber null Pixels breit, weil das GridBagLayout keinen Grund hat, sie breiter zu machen. Da ist ja nirgends was drin, was nur genau die Spalte füllt; alles was in Spalte 0 drin ist ist ja mehr als eine Spalte breit.

Tu ein leeres Panel in die zweite Zeile / erste Spalte. Gib dem leeren Panel als PreferredSize die Größe die Du gern als Platz hättest. Und schon geht's.

Happy Hacking!
Ebenius
 
S

SlaterB

Gast
für die TextArea
constraints.fill = GridBagConstraints.BOTH;
statt
constraints.fill = GridBagConstraints.HORIZONTAL;
 

clou

Mitglied
Hallo Ebenius, danke für deinen Tipp. PreferredSize möchte ich nicht anwenden, da ich das noch nicht gelernt habe. Ich dachte, der Fehler liegt irgendwo bei weightx, da ich das noch nicht wirklich begriffen habe. Allerdings hab ich da schon alle möglichen Versuche unternommen ohne Besserung. Ich habe deinen Tipp jetzt ohne PreferredSize umgesetzt indem ich ein Label mit Leerzeichen genommen habe. Ist bestimmt keine saubere Lösung aber zumindest sieht es schon mal so aus, wie es ausssehen soll.

Hast du noch einen Tipp bezüglich der Textarea? Warum ist die nur eine Zeile hoch anstatt 8 Zeilen?

Danke nochmal.

LG
Clou
 
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
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
D GridBagLayout Java Basics - Anfänger-Themen 4
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