2009-10-19 110 views
1

我正在使用borderLayout將我的組件放置在JFrame和Box(BoxLayout.X_AXIS)中,以將按鈕放在一起。但它造成了兩個問題:在不改變按鈕大小的情況下更改按鈕文本

  1. 我想要的按鈕具有相同的大小,但它會自動調整大小,它們適合在其中的文本(尤其是惱人的,當我在運行時改變按鈕中的文本)

  2. 我想要的按鈕使它們之間的空間一點點(比方說10像素)

使用的borderlayout這是可能的,或者我需要使用setLayout的爲空?如果是這樣,這是不是會搞砸框架中按鈕的原始位置?或者這仍然會由與borderLayout放置在一起的Box處理?

回答

4

一些建議

  1. 嘗試preferredSize設置到合適的Dimension
  2. 如果不行,試試也maximumSizeminimumSize設置此相同的尺寸值
  3. 如果仍然不起作用,請將按鈕的佈局管理器更改爲GridBagLayout。這個佈局管理器的優點是,它可以讓你以微小的細節控制佈局的行爲。缺點是您通常需要在GridBagLayout上配置大量屬性才能獲得所需的行爲。我建議首先檢查GridBagLayout教程,因爲它是一個相當複雜的野獸。
+0

謝謝,設置按鈕的最小/最大尺寸工作。我現在正在研究GridBagLayout。 – FinalArt2005 2009-10-19 14:31:34

+0

設置preferredSize似乎只適用於高度,而不適用於寬度。 – FinalArt2005 2009-10-20 09:46:54

2

如果您希望它們具有相同的大小,那麼只需將按鈕添加到GridLayout,它們將自動調整爲最大的文本字符串大小。您還可以指定組件之間的差距。

+0

謝謝,我已經研究過GridBagLayout,但我認爲它對於我所擁有的幾個按鈕來說有點太精細了,所以我現在嘗試這個GridLayout(在閱讀關於GridBagLayout時已經發現它)。如果我能設置一個差距,那就太好了。 – FinalArt2005 2009-10-20 09:48:57