2011-08-24 169 views
9

如何僅更改需要Dimension對象的組件的寬度或高度?目前,我不喜歡這樣寫道:尺寸,僅更改寬度/高度

jbutton.setPreferredSize(new Dimension(button.getPreferredSize().width, 100)); 

但我有我做了錯誤的方式的感覺。 如果有更好的方法,最好的方法是什麼?

+5

您所做的基本錯誤是使用任何維度調用setPreferredSize ;-)您將干擾部分組件的任何內部大小提示計算。簡單地說:不要,永遠不要。相反,使用一個體面的LayoutManager。 – kleopatra

回答

2

我最終按照克列奧帕特拉的說法這樣做了。不改變preferredSize,而是讓佈局經理完成這項工作。由於這是更改組件大小的正確方法。

+2

無法抗拒評論,我的語法編譯器正在拋出'SentenceFragment'錯誤(但我會讓我的骯髒的手離開你的帖子):) – Ben

13

首先你不改變JButton的維度。您正在指定所需的首選大小,它可以最終應用於您的JButton,具體取決於它所插入組件的LayoutManager。

對於使用Dimension對象的問題很好。最終你可以直接訪問尺寸字段:

Dimension d = button.getPreferredSize(); 
d.height = 10; 
jbutton.setPreferredSize(d); 

但這幾乎是一回事。

+0

@帕特里克:也許我還沒有理解你的問題。 – Heisenbug

+0

您對您的問題進行了編輯,現在它回答了問題。我似乎無法刪除以前的評論,所以我感謝你的新答案。 – Patrick

-1

你可以這樣說:在帳戶

jbutton.getPreferredSize().height = 100; 

採取首選大小屬性只能通過一定的佈局管理器。

+0

您不能這樣做,因爲getPreferredSize()可能會返回首選大小的副本。 – ceklock

相關問題