[英]Why does glue disappear when I wrap a Panel with another one?
這是我試過的:
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"));
它工作得很好。 按鈕位於左側和右側
但如果我將它包裝到FlowLayout
管理的JPanel
,膠水就會消失。
//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);
為什么? 我認為膠水就像任何其他組件一樣,所以它不應該消失。 這是它的樣子:
不能有人解釋一下嗎? 請注意,如果我將它放入帶有BoxLayout
的JPanel
,那很好。
為什么? 我認為膠水就像任何其他組件一樣,所以它不應該消失
“膠水”的首選大小為0。
不能有人解釋一下嗎?
FlowLayout
以其首選大小顯示組件。 因此添加到其中的任何面板都將顯示在面板首選大小。
使用BoxLayout
的面板的首選大小是添加到面板的組件的大小。 由於膠的優選尺寸為0,因此它對面板的優選尺寸沒有影響。
“膠水”只是使用BoxLayout
為面板增加了功能。 也就是說,當面板大小(由父面板的布局管理器確定)大於首選大小時, BoxLayout
將為膠水提供額外的空間。
因此,根據父面板的布局管理器,“膠水”將會或不會影響布局。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.