Java - dynamische Anpassung an Fenstergröße?

  • Themenstarter Themenstarter javax92234
  • Beginndatum Beginndatum
J

javax92234

Gast
Hallo Leute!
Ich habe eine Frage und hoffe, ihr könnte und möchtet mir helfen 🙂
Ich habe ein JPanel mit einem BorderLayout. Dieses passt sich dynamisch an die Fenstergröße an. Da links (bzw. BorderLayour.WEST) nur Buttons sind, die nicht allzu breit sein müssen, möchte ich deren Größe beschränken. Gibt es da eine Möglichkeit? Die Buttons müssen sich dazu nicht vergrößern, nur der Inhalt in BorderLayout.CENTER.

Die Buttons selber liegen in einem GridLayout mit 5 Zeilen.


Viele Grüße,

Gastcoder
 
nimm für die Buttons ein BoxLayout.
Das BorderLayout macht in Bezug auf den CenterBereich eigentlich genau dass, was du willst o0!

Gruß Vanny
 
wenn du das JPanel mit dem Buttons immer mit einer festen Breite haben willst, kannst du einfach
Java:
leftButtonsPanel.setPreferredSize(new Dimension(50,0));
aufrufen. (in dem Beispiel wären sie immer 50px breit)
 
setPreferredSize setzt doch nur die bevorzugte Größe des Panels, welches aber durch das Layout übergangen werden kann. Sollte man nicht lieber setMaximumSize(...) verwenden? Dadurch wird zumindest die maximale Größe festgelegt und kann nicht mehr größer gesized werden.
 
setPreferredSize setzt doch nur die bevorzugte Größe des Panels, welches aber durch das Layout übergangen werden kann. Sollte man nicht lieber setMaximumSize(...) verwenden? Dadurch wird zumindest die maximale Größe festgelegt und kann nicht mehr größer gesized werden.
nope.
Auszug aus der Implementierung von BorderLayout aus der Methode "layoutContainer":
Java:
        if ((c=getChild(WEST,ltr)) != null) {
            c.setSize(c.width, bottom - top);
            Dimension d = c.getPreferredSize();
            c.setBounds(left, top, d.width, bottom - top);
            left += d.width + hgap;
        }
 
Zuletzt bearbeitet:

Zurück
Oben