JPanel zentrieren
Jeena Paradies
- java
Hallo,
Ich habe ein Problem mit Java und meiner GUI. Ich habe ein JFrame und zwei JPanels, eines 10px breit, das andere 100px breit. Das 10px breite soll einfach oben zentriert werden, aber es nimmt immer die volle breite an, was kann ich da machen?
import java.awt.*;
import javax.swing.*;
class Test
{
public static void main(String[] argv)
{
JFrame f = new JFrame();
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JPanel pCenter = new JPanel();
pCenter.setBackground(Color.RED);
pCenter.setPreferredSize(new Dimension(10, 10));
f.add(pCenter, BorderLayout.CENTER);
JPanel pSouth = new JPanel();
pSouth.setBackground(Color.GREEN);
pSouth.setPreferredSize(new Dimension(100, 200));
f.add(pSouth, BorderLayout.SOUTH);
f.pack();
f.setVisible(true);
}
}
Jeena
Hallo Jeena,
Du verwendest wohl den falschen Layout-Manager.
Mit einem GridBagLayout kannst Du so etwas machen.
Wenn Du ein komplexeres Layout aufbauen willst, würde ich allerdings empfehlen, GroupLayout und einen entsprechenden Gui-Editor zu nehmen, jedenfalls, wenn es schnell gehen soll. (Netbeans hat einen solchen, wie es bei Eclipse aussieht, weiß ich nicht).
Außerdem gibt es für kompliziertere Layouts noch SpringLayout, wobei ich das relativ umständlich finde und es keinen Gui-Editor dafür gibt.
Ganz nett fand ich auch ExplicitLayout, vor allem für recht dynamische Sachen.
BorderLayout ist eigentlich nur dazu geeignet, irgendwelche Symbolleisten um etwas herum zu positionieren o.ä.
Wenn man Formulare hand-codieren will mit Java-Bordmitteln, fährt man wohl mit GridBagLayout und Verschachtelung von Panels am besten.
Grüße
Daniel
Hallo,
Mit einem GridBagLayout kannst Du so etwas machen.
Prima damit funktioniert das ja fast ein bischen wie mit CSS, vor allem das mit dem "padding" gefällt mir ;)
Die anderen Layoutmanager gucke ich mir dann im nächsten Kurs näher an, also ab Januar :-).
Jeena
Hi,
und einen entsprechenden Gui-Editor zu nehmen, jedenfalls, wenn es schnell gehen soll. (Netbeans hat einen solchen, wie es bei Eclipse aussieht, weiß ich nicht).
Für Eclipse gibt es das Visual Editor Project
cu,
Andreas
Hallo MudGuard,
Für Eclipse gibt es das Visual Editor Project
Richtig, aber so weit ich weiß, unterstützt der kein GroupLayout (oder SpringLayout was eine alternative wäre), sondern lediglich GridBagLayout und die einfachen Layoutmanager. Und damit macht das nicht so richtig Spaß. Außerdem war dieser GUI-Editor ziemlich unbenutzbar zumindest für Swing, als ich ihn zuletzt ausprobiert habe. Das mag sich natürlich geändert haben.
Grüße
Daniel