GridBagLayout -> Wie werden Elemente "zentriert&quot

Status
Nicht offen für weitere Antworten.

gurke1509

Mitglied
Hallo zusammen,

Um nur das nötigste zu erzählen:

Ich möchte in einem Frame in ein Panel 6 Elemente einfügen.
Und zwar im Wechsel jeweils ein Label und einen JSpinner.

Ich arbeite dafür mit GridBagConstraints. Hier sind diejenige, die für meine Wünsche gebraucht werden:

Code:
constleft = new GridBagConstraints();                   //Constraints für Tabellenelemente im Westen
constleft.anchor = GridBagConstraints.WEST;
constleft.fill = GridBagConstraints.NONE;
constleft.gridwidth = GridBagConstraints.RELATIVE;
constright = new GridBagConstraints();                  //Constraints für Tabellenelemente im Osten
constright.anchor = GridBagConstraints.WEST;
constright.fill = GridBagConstraints.NONE;
constright.gridwidth = GridBagConstraints.REMAINDER;

Dann füge ich die 6 Elemente wie folgt ein:
Code:
pgraphextra.add(lblgraphp, constleft);
pgraphextra.add(spp,constleft);
pgraphextra.add(lblgraphn,constleft);
pgraphextra.add(spn,constleft);
pgraphextra.add(lblgraphk,constleft);
pgraphextra.add(spk,constright);

Aber im Frame sieht das ganze dann so aus:
lgsshot4.jpg


Warum sind die Elemente unter dem Graphen jetzt so weit rechts angeordnet?
Das erste Element ist in der Mitte, alles andere wird rechts davon gesetzt.
Ich hätte das aber gerne alles mittig, weiß aber nicht wie ich das bewerkstelligen soll.

Hat da vielleicht jemand einen Lösungsvorschlag?

Gruß Tobias
 

WieselAc

Top Contributor
Dein Code ist etwas unvollständig. Wie fügst du denn den Button und das Panel/Bild ein? Befindet sich das alles auf einem Panel, oder baust du für die Spinner/Label einen eigenen Container?

Wenn du die Spinner/Label auf ein Container Panel packst und das dann auf dein Hauptpanel hinzufügst, dann musst du das natürlich auch mit einem entsprechenden GridBagConstraints machen.
 

WieselAc

Top Contributor
Das wäre mal ein Beispiel, aber um das so zu machen wie du willst bräuchte man natürlich viel mehr informationen. Was ist statisch, was dynamisch? Resize welches Verhalten? etc....

Code:
import java.awt.Color;
import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
import java.awt.Insets;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;

public class GirdBagLayoutTest extends JPanel {

    public GirdBagLayout() {
        setBackground(Color.RED);
        setLayout(new GridBagLayout());

        JButton b1 = new JButton("Diagramm");

        JButton b2 = new JButton("Label 1");
        JButton b3 = new JButton("Spinner 1");
        JButton b4 = new JButton("Label 2");
        JButton b5 = new JButton("Spinner 2");
        JButton b6 = new JButton("Label 3");
        JButton b7 = new JButton("Spinner 3");

        JButton b8 = new JButton("Button");

        add(b1, new GridBagConstraints(0, 0, 6, 1, 100, 0,
                GridBagConstraints.NORTH, GridBagConstraints.BOTH, new Insets(
                        10, 10, 10, 10), 0, 0));
        add(b2, new GridBagConstraints(0, 1, 1, 1, 0, 0,
                GridBagConstraints.NORTH, GridBagConstraints.NONE, new Insets(
                        10, 10, 10, 10), 0, 0));
        add(b3, new GridBagConstraints(1, 1, 1, 1, 0, 0,
                GridBagConstraints.NORTH, GridBagConstraints.NONE, new Insets(
                        10, 10, 10, 10), 0, 0));
        add(b4, new GridBagConstraints(2, 1, 1, 1, 0, 0,
                GridBagConstraints.NORTH, GridBagConstraints.NONE, new Insets(
                        10, 10, 10, 10), 0, 0));
        add(b5, new GridBagConstraints(3, 1, 1, 1, 0, 0,
                GridBagConstraints.NORTH, GridBagConstraints.NONE, new Insets(
                        10, 10, 10, 10), 0, 0));
        add(b6, new GridBagConstraints(4, 1, 1, 1, 0, 0,
                GridBagConstraints.NORTH, GridBagConstraints.NONE, new Insets(
                        10, 10, 10, 10), 0, 0));
        add(b7, new GridBagConstraints(5, 1, 1, 1, 0, 0,
                GridBagConstraints.WEST, GridBagConstraints.NONE, new Insets(
                        10, 10, 10, 10), 0, 0));
        add(b8, new GridBagConstraints(0, 2, 6, 1, 0, 0,
                GridBagConstraints.CENTER, GridBagConstraints.NONE, new Insets(
                        10, 10, 10, 10), 0, 0));

        JPanel p = new JPanel();
        p.setBackground(Color.green);
        add(p, new GridBagConstraints(0, 3, 6, 1, 100, 100,
                GridBagConstraints.NORTH, GridBagConstraints.BOTH, new Insets(
                        0, 0, 0, 0), 0, 0));
    }

    public static void main(String[] args) {
        JFrame frame = new JFrame();
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setSize(400, 600);
        frame.setContentPane(new GirdBagLayoutTest());
        frame.pack();
        frame.setVisible(true);
    }

}
 
G

Gast

Gast
Fehler beim Kompilieren in Zeile 13.
sie müsste:
public GirdBagLayoutTest() {
lauten ;-)

viel spass noch gruß
 

gurke1509

Mitglied
Das ganze wird in den Container des Frames, wie folgt eingefügt:

Code:
fplottercontent.add(pgraphextra,BorderLayout.SOUTH);

Zuvor wurde ein
Code:
 Container fplottercontent = fplotter.getContentPane();
fplottercontent.setLayout(new BorderLayout(0,0));
gemacht.

Wenn ich die Größe des Fensters änder bleibt der button immer in der mitte, genauso wie das erste Label:
lgsshot5.jpg



Achja, den Button füge ich übrigens hiermit ein:
Code:
pgraphextra.add(btgraphrechnen,constright);

Wenn ich auf der gleichen "Zeile" noch einen Button einfüge, sieht das ganze so aus:
lgsshot6.jpg


Lasse ich die Buttons ganz weg, ist das erste Element trotzdem noch mittig angeordnet.
 

WieselAc

Top Contributor
Hmm so ganz hab ich deine Verschachtelung und dein Ziellayout zwar immer noch nicht verstanden, aber probier mal:

Code:
fplottercontent.add(pgraphextra,BorderLayout.WEST);

PS: setzt den Panels die du hast mal hintergrund Farben, dann sieht man besser was los ist.
 

gurke1509

Mitglied
Das hat nichts gebracht. Ich habe das jetzt auf die Art und Weise gemacht, wie du es mir in deinem Code gezeigt hast und verwende jetzt für jedes Element eine feste Position in dem Gitternetz des GridBagLayouts.

Code:
pgraphextra.add(lblgraphp, new GridBagConstraints(0, 0, 1, 1, 0, 0, GridBagConstraints.WEST, GridBagConstraints.NONE, new Insets(5, 5, 5, 5), 0, 0));
pgraphextra.add(spp, new GridBagConstraints(1, 0, 1, 1, 0, 0, GridBagConstraints.WEST, GridBagConstraints.NONE, new Insets(5, 5, 5, 5), 0, 0));
pgraphextra.add(lblgraphn, new GridBagConstraints(2, 0, 1, 1, 0, 0, GridBagConstraints.WEST, GridBagConstraints.NONE, new Insets(5, 5, 5, 5), 0, 0));
pgraphextra.add(spn, new GridBagConstraints(3, 0, 1, 1, 0, 0, GridBagConstraints.WEST, GridBagConstraints.NONE, new Insets(5, 5, 5, 5), 0, 0));
pgraphextra.add(lblgraphk, new GridBagConstraints(4, 0, 1, 1, 0, 0, GridBagConstraints.WEST, GridBagConstraints.NONE, new Insets(5, 5, 5, 5), 0, 0));
pgraphextra.add(spk, new GridBagConstraints(5, 0, 1, 1, 0, 0, GridBagConstraints.WEST, GridBagConstraints.NONE, new Insets(5, 5, 5, 5), 0, 0));
pgraphextra.add(btgraphrechnen, new GridBagConstraints(2, 1, 2, 1, 0, 0, GridBagConstraints.WEST, GridBagConstraints.NONE, new Insets(5, 5, 5, 5), 0, 0));

Jetzt sieht das ganze so aus, wie ich es haben wollte (nämlich genau mittig):
lgsshot7.jpg


Danke für deine Hilfe.
 

WieselAc

Top Contributor
Sehr schön!!

Freu mich immer wenn ich jemanden treff der sich durch das GridBagLayout wühlt.

Wobei mich wundert das es klappt, aber egal :D
 
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
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
S nach Import von jars (PLC4x) in Eclipse kann nicht mehr compiliert werden Java Basics - Anfänger-Themen 9
I Zapier -> wie werden Objekte gespeichert? Java Basics - Anfänger-Themen 10
L Datum - Monat und Jahr werden falsch angezeigt Java Basics - Anfänger-Themen 4
N Ich kriege ganze zeit die Fehlermeldung "Inhalt der Zwischenablage kann nicht in die ausgewählten Elemente eingefügt werden" hat jemand eine Lösung? Java Basics - Anfänger-Themen 6
K Warum werden immer noch doppelte Zahlen ausgegeben ? Java Basics - Anfänger-Themen 13
O HashTable kann ohne Performance-Verlust in Multithreaded-Anwendungen eingesetzt werden. Java Basics - Anfänger-Themen 6
R Java kann nicht installiert werden Java Basics - Anfänger-Themen 8
P BeforeEach AfterEach werden nicht ausgeführt. Java / Selenium Java Basics - Anfänger-Themen 4
D Kleinste Zahl in Array finden die vorher noch errechnet werden müssen. Java Basics - Anfänger-Themen 4
L Gegebenes Array sortieren, indem zufällige Zahlenpaare aus Array ausgewählt werden Java Basics - Anfänger-Themen 14
I aus 2 random zahlen soll nur die ungerade summe der beiden genommen werden. Java Basics - Anfänger-Themen 13
I Greenscreen, funktioniert nicht zu 100%... nicht alle Pixel werden geändert Java Basics - Anfänger-Themen 1
R Audio kann nur zum Teil gestoppt werden Java Basics - Anfänger-Themen 1
berserkerdq2 sqllite in Java, wenn ich mache select count(*) ..., erhalte ich dann nur die gezählte Anzahl oder werden auch die Tabellen ausgegeben? Java Basics - Anfänger-Themen 2
L Hilfe! Liste mit Items werden ausgegeben aber nicht in zufälliger Reihenfolge Java Basics - Anfänger-Themen 6
H Erste Schritte Nach einer Zahl n soll n Mal der String untereinander ausgegeben werden Java Basics - Anfänger-Themen 3
sserio Wieso werden nicht alle Primzahlen bis 1000 in meine Liste gepackt ? Java Basics - Anfänger-Themen 8
docmas 2DArray Werte werden nur untereinander ausgegeben Java Basics - Anfänger-Themen 1
E Umlaute und Sonderzeichen werden nach der Build Project nicht richtig angezeigt Java Basics - Anfänger-Themen 2
M Bei nach oben scrollen soll Seite aktualisiert werden (Userscript mit Javascript) Java Basics - Anfänger-Themen 10
A Wenn eine Zahl durch 7 teilbar ist, soll statt der Zahl ein ‘*‘ angezeigt werden. java? Java Basics - Anfänger-Themen 47
C Ein Algorithmus soll schneller werden Java Basics - Anfänger-Themen 24
Q Prüfen ob Zahl als Summe von Potenzen dargestellt werden kann. Java Basics - Anfänger-Themen 20
K Erste Schritte Wie schnell ist LinkedHashMap im Vergleich zur ArrayList, wenn alle Entries durchlaufen werden? Java Basics - Anfänger-Themen 47
LiFunk Exception: es dürfen nur Nummern eingelesen werden Java Basics - Anfänger-Themen 6
U Hauptklasse kann nicht gefunden werden Java Basics - Anfänger-Themen 8
OZAN86 For Schleife von 1-50 die Zahlen werden durch ein Komma getrennt Java Basics - Anfänger-Themen 10
M Wie kann ich Werte die in einer While Schleife sind weiter genutzt werden? Java Basics - Anfänger-Themen 7
Hallolu Pong-Spiel: Schläger schneller werden lassen Java Basics - Anfänger-Themen 9
C java.sql Statement kann nicht geschlossen werden Java Basics - Anfänger-Themen 9
LetsSebi Dateien werden nicht in Zip gespeichert Java Basics - Anfänger-Themen 1
D Codeblöcke, die immer wieder im Programmverlauf benötigt werden Java Basics - Anfänger-Themen 5
J Array Elemente werden nicht gefunden! Java Basics - Anfänger-Themen 6
M Warum werden character, die Leerzeichen sind, nicht korrekt verarbeitet? Java Basics - Anfänger-Themen 2
C Array-Werte werden gemischt, ohne Logik Java Basics - Anfänger-Themen 2
P Variablen HttpResponse.getBody() wird automatisch org.json Object und kann nicht zu json.simple Object gecastet werden? Java Basics - Anfänger-Themen 7
F JMenuItem Kann nicht nach einem String benannt werden... Java Basics - Anfänger-Themen 11
L Methode implementieren, Parameter die übergeben werden sind final Java Basics - Anfänger-Themen 4
Zrebna Programm kann aus der Konsole nicht gestartet werden (in der IDE läuft es) Java Basics - Anfänger-Themen 2
D Zahlen werden falsch gekürzt :? Java Basics - Anfänger-Themen 27
T Javafx ListView kann nicht gefüllt werden. Java Basics - Anfänger-Themen 6
H Eclipse kann nicht gestartet werden .... Java Basics - Anfänger-Themen 15
R Warum werden hier nur die grün und orangen Linien ausgegeben und der Rest unten nicht? Java Basics - Anfänger-Themen 5
J Eckige Klammern werden nicht erkannt Java Basics - Anfänger-Themen 1
J Klammern werden fälschlicherweise eingelesen Java Basics - Anfänger-Themen 2
Elyt Bei Monopoly werden Felder übersprungen Java Basics - Anfänger-Themen 2
Kirby.exe Hauptklasse konnte nicht gefunden werden.... Java Basics - Anfänger-Themen 27
B Nach dem kompilieren werden Bilder nicht mehr gefunden Java Basics - Anfänger-Themen 10

Ähnliche Java Themen

Neue Themen


Oben