【发布时间】:2012-12-04 00:51:29
【问题描述】:
我正在尝试创建一个左侧有几个文本项,右侧有一个按钮的布局。我已经完全按照我想要的方式获得了文本项,但我无法让按钮在右侧对齐。
我正在按如下方式创建按钮:
SpringLayout layout = new SpringLayout();
JPanel p2 = new JPanel(layout);
// set panel size very large so it fills its own parent
p2.setMaximumSize(new Dimension(Short.MAX_VALUE, Short.MAX_VALUE));
p2.setBackground(new Color(0xffd0d0));
p2.setBorder(BorderFactory.createLineBorder(new Color(0)));
// Add some text items; omitted for clarity
...
// Add a button in the lower-right corner
JButton btn = new JButton(refreshAction);
p2.add(btn);
layout.putConstraint(SpringLayout.EAST, btn,
Spring.constant(0),
SpringLayout.EAST, p2);
layout.putConstraint(SpringLayout.SOUTH, btn,
Spring.constant(0),
SpringLayout.SOUTH, p2);
我认为这会将按钮的东边和南边与容器的东边和南边对齐,但它没有发生。看起来按钮边缘与容器的首选大小而不是其实际大小对齐。
另一个数据点:当我设置标签的值时,按钮会跳到右边,与刚刚添加的文本的末尾对齐。显然,容器的首选大小已经增加,即使实际大小没有改变,并且按钮的位置也随之改变。
【问题讨论】:
标签: java swing springlayout