Wie kann ich ein Panel nach Nord-West ausrichten?

Hallo,

ich versuche in Java eine Panel im Contentpane nach Nord-West ausrichten, so dass das oben links in der Ecke beginnt.
Ich bin auf die Idee gekommen und hab den Contentpane, als GridBagLayout definiert und dann über die Constraints versucht das Ganze auszurichten. Leider brachte es nicht den gewünschten Erfolg, das Panel liegt immer noch mittig.
Gibt es da noch andere Möglichkeiten?

Gruß

Steffen

Code:

content ist das Panel, was ich verschieden möchte.

this.getContentPane().setLayout(gbl);
content.setBackground(Color.red);

gbl.setConstraints(content, new GridBagConstraints(0, 0, 1, 1, 0.0, 0.0, GridBagConstraints.NORTHWEST, GridBagConstraints.BOTH, new Insets(2, 2, 2, 2), 0, 0));

this.getContentPane().add(content);

Hi Steffen,
probiers mal so:

this.getContentPane().setLayout(new GridBagLayout());
GridBagConstraints c = new GridBagConstraints(0, 0, 1, 1, 1.0, 0.0, GridBagConstraints.NORTHWEST, GridBagConstraints.NONE, new Insets(2, 2, 2, 2), 0, 0);
this.getContentPane().add(content, c);

Dein Problem war, dass du das Atribut weightx auf eine anderen Zahl als 0 setzen musst, damit überhaupt die ganze Breite der Zeile bei der Errechnung der Position berücksichtigt wird.
Ich mach das immer so, dass ich die GridBagConstraints als Objekt instanziiere, weil ich sie dann wiederverwenden kann. Dann muss man nur dran denken, beim Adden auf die ContentPane das GridBagConstraints-Objekt mit zu übergeben.

Gruß, Steffi

Hallo Steffi.

Danke, das hat geholfen. Kleiner Hinweis für die Ausrichtung oben-links, muss auch weighty auf 1.0 gesetzt werden. Ansonsten, war der Tipp sehr hilfreich, danke für die schnelle Antwort.

Hallo,
hier ist mal ein link zu einem schönem Skrip (Tutorial für Swing)
www.apl.jhu.edu/…/java/Swing…/Swing-Tutorial-JPa…
Aber normalerweise sollte es schon so funktionieren wie du es hast. Möglicherweise hilft ein Clear und Rebuild.
Sorry dass ich dir nicht detailierter helfen kann.
Schöne Grüsse

Link:
http://www.apl.jhu.edu/~hall/java/Swing-Tutorial/Swi…

Hi Steffen,

Mit dem GridBagLayout muss man sich lang rumschlagen um das verhalten richtig zu verstehen. Wenn man es aber mal verstanden hat ist es sehr angenehm :wink:
Die Attribute gridwidth und gridheight geben an, wieviel Platz das Element in der Zeile bzw. Spalte einnimmt. Wenn das Element den kompletten Platz einnehmen soll, musst du diesen Wert auf 1.0 setzen (100%) Da das Panel dein einziges Element ist, musst du diesem auch den kompletten Platz geben:

JPanel content = new JPanel();
this.getContentPane().setLayout(new GridBagLayout());
GridBagLayout gbl = new GridBagLayout();
content.setBackground(Color.red);
this.getContentPane().add(content, new GridBagConstraints(0, 0, 1, 1, 1.0, 1.0, GridBagConstraints.NORTHWEST, GridBagConstraints.NONE, new Insets(2, 2, 2, 2), 0, 0));

Grüße
Stefan

Hallo Steffen,

tut mir leid, da bin ich der falsche Ansprechpartner. Da kenn ich mich nicht aus.

Gruß
Tobias