Jeena Paradies: JPanel zentrieren

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);  
  
    }  
}

JPanel

Jeena

--
<br />
<b>Fatal error</b>:  Class 'Query' not found in <b>/home/jeena/jeenaparadies.net/htdocs/weblog/cforum-remote-signature.php</b> on line <b>28</b><br />
| Jlog | Gourmetica Mentiri
  1. 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

    1. 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 ;)

      Sitzplatzreservierung

      Die anderen Layoutmanager gucke ich mir dann im nächsten Kurs näher an, also ab Januar :-).

      Jeena

      --
      <br />
      <b>Fatal error</b>:  Class 'Query' not found in <b>/home/jeena/jeenaparadies.net/htdocs/weblog/cforum-remote-signature.php</b> on line <b>28</b><br />
      | Jlog | Gourmetica Mentiri
    2. 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

      --
      Warum nennt sich Andreas hier MudGuard?
      O o ostern ...
      Fachfragen unaufgefordert per E-Mail halte ich für unverschämt und werde entsprechende E-Mails nicht beantworten. Für Fachfragen ist das Forum da.
      1. 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