这是我尝试过的:
JPanel p1 = new JPanel();
BoxLayout b1 = new BoxLayout(p1, BoxLayout.X_AXIS);
p1.setLayout(b1);
p1.add(new JButton("1"));
p1.add(Box.createHorizontalGlue());
p1.add(new JButton("1"));
而且效果很好。按钮在左侧和右侧
但是,如果我把它包装成JPanel
由管理FlowLayout
胶水消失。
//Flow Layout
JPanel jp = new JPanel();
//Box Layout
JPanel p1 = new JPanel();
BoxLayout b1 = new BoxLayout(p1, BoxLayout.X_AXIS);
p1.setLayout(b1);
p1.add(new JButton("1"));
p1.add(Box.createHorizontalGlue());
p1.add(new JButton("1"));
//put it into a JPanel with FlowLayout
jp.add(p1);
panel.add(jp);
为什么?我以为胶水就像其他任何部件一样,所以它不应该消失。看起来是这样的:
有人不能解释吗?请注意,如果我把它变成一个JPanel
与BoxLayout
它的罚款。
为什么?我以为胶水就像其他任何成分一样,所以它不应该消失
“胶水”的首选大小为0。
有人不能解释吗?
AFlowLayout
以其首选大小显示组件。因此,添加到该面板的任何面板都将以面板的首选大小显示。
使用a的面板的首选大小BoxLayout
是添加到面板中的组件的大小。由于胶水的首选大小为0,因此对面板的首选大小没有影响。
“胶水”只是使用赋予面板附加功能BoxLayout
。也就是说,当面板尺寸(由父面板的布局管理器确定)大于首选尺寸时,BoxLayout
将为胶水提供额外的空间。
因此,取决于父面板的布局管理器,“胶水”将影响或不会影响布局。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句