在不改变按钮大小的情况下更改按钮文本
问题描述:
我正在使用borderLayout将我的组件放置在JFrame和Box(BoxLayout.X_AXIS)中,以将按钮放在一起。但它造成了两个问题:在不改变按钮大小的情况下更改按钮文本
我想要的按钮具有相同的大小,但它会自动调整大小,它们适合在其中的文本(尤其是恼人的,当我在运行时改变按钮中的文本)
我想要的按钮使它们之间的空间一点点(比方说10像素)
使用的borderlayout这是可能的,或者我需要使用setLayout的为空?如果是这样,这是不是会搞砸框架中按钮的原始位置?或者这仍然会由与borderLayout放置在一起的Box处理?
答
一些建议
- 尝试
preferredSize
设置到合适的Dimension
值 - 如果不行,试试也
maximumSize
和minimumSize
设置此相同的尺寸值 - 如果仍然不起作用,请将按钮的布局管理器更改为
GridBagLayout
。这个布局管理器的优点是,它可以让你以微小的细节控制布局的行为。缺点是您通常需要在GridBagLayout上配置大量属性才能获得所需的行为。我建议首先检查GridBagLayout教程,因为它是一个相当复杂的野兽。
答
如果您希望它们具有相同的大小,那么只需将按钮添加到GridLayout,它们将自动调整为最大的文本字符串大小。您还可以指定组件之间的差距。
+0
谢谢,我已经研究过GridBagLayout,但我认为它对于我所拥有的几个按钮来说有点太精细了,所以我现在尝试这个GridLayout(在阅读关于GridBagLayout时已经发现它)。如果我能设置一个差距,那就太好了。 – FinalArt2005 2009-10-20 09:48:57
谢谢,设置按钮的最小/最大尺寸工作。我现在正在研究GridBagLayout。 – FinalArt2005 2009-10-19 14:31:34
设置preferredSize似乎只适用于高度,而不适用于宽度。 – FinalArt2005 2009-10-20 09:46:54