Aly*_*Aly 20 java user-interface swing
嗨,我正在使用一个BoxLayout
堆叠JPanel
在彼此的顶部(BoxLayout.Y_AXIS
),例如,如果我的父亲JPanel
高度为500像素,我添加两个子面板,高度为100像素.在BoxLayout
绵延他们,让他们一起占据了500px的空间.有谁知道如何禁用此功能?
cam*_*ckr 23
BoxLayout是少数几个遵循组件最小和最大尺寸的布局管理器之一.因此,如果您想阻止面板伸展,您可以使用:
panel.setMaximumSize( panel.getPreferredSize() );
Run Code Online (Sandbox Code Playgroud)
Asc*_*ian 10
请改用GridBagLayout.您可以更好地控制UI.
但是如果你想仍然使用BoxLayout,并且不希望它们伸展,你可以使用隐形组件填充物检查,如刚性区域,胶水和填充物.
这似乎工作得很好...根据需要使用BoxLayout。
this.setLayout(new FlowLayout()); // this being the JFrame
JPanel panel = new JPanel();
panel.setLayout(new BoxLayout(panel, BoxLayout.Y_AXIS));
panel.setPreferredSize(new Dimension(500, 500));
panel.setBackground(Color.orange);
this.add(panel); // add the parent to the JFrame
JPanel pnlChild1 = new JPanel();
pnlChild1.setBackground(Color.cyan);
pnlChild1.setMaximumSize(new Dimension(200, 100));
JPanel pnlChild2 = new JPanel();
pnlChild2.setBackground(Color.magenta);
pnlChild2.setMaximumSize(new Dimension(200, 100));
panel.add(pnlChild1);
panel.add(pnlChild2);
Run Code Online (Sandbox Code Playgroud)