更改按钮文本而不更改按钮大小

时间:2009-10-19 12:28:02

标签: java swing button size

我正在使用borderLayout将我的组件排列在JFrame和Box(BoxLayout.X_AXIS)中,以便将按钮放在一起。但它会产生两个问题:

  1. 我希望按钮具有相同的大小,但它会自动调整大小以适应其中的文本(特别是在运行时更改按钮内的文本时很烦人)

  2. 我希望按钮之间有一点空间(比方说10 px)

  3. 这是否可以使用borderLayout,或者我是否需要使用setLayout为null?如果是这样,这不会搞砸按钮在框架中的原始位置吗?或者这仍然由与borderLayout一起放置的Box处理?

2 个答案:

答案 0 :(得分:4)

一些建议

  1. 尝试将preferredSize设置为合适的Dimension
  2. 如果这不起作用,请尝试将maximumSizeminimumSize设置为此相同的维度值
  3. 如果仍然无效,请将按钮的布局管理器更改为GridBagLayout。此布局管理器的优点是,它允许您以细微的方式控制布局的行为。缺点是您通常需要在GridBagLayout上配置大量属性才能获得所需的行为。我建议先查看GridBagLayout教程,因为它是一个相当复杂的野兽。

答案 1 :(得分:2)

如果您希望它们具有相同的大小,则只需将按钮添加到GridLayout,它们将自动调整为最大的文本字符串。您还可以指定组件之间的间隙。