2012-08-02 93 views
2

在Swing中指定組件的高度和寬度時,是否有方法設置給定對象應填充可用的垂直/水平空間?即我想說setSize(*, 100)允許水平填充。Java swing - 填充大小

+0

嘗試獲得與this.getParent父寬度()。但是,如果你調用pack(),這可能不起作用。所以可能會考慮添加一些代碼,並告訴我們你在做什麼 – peshkira 2012-08-02 14:40:10

+0

是否有一個原因,你正在使用'setSize()'而不是'setPreferredSize()'與LayoutManager? – James 2012-08-02 14:41:49

+0

我不知道什麼是正確的方法。你會怎麼做與佈局經理? – Bober02 2012-08-02 14:44:06

回答

3

你可以用任何你想要的電話撥打setSize,但最後它是ContainerLayoutManager,它決定了每個組件得到的位置和大小。

因此,通過使用正確的LayoutManager,您通常可以成功地讓組件獲得所有可用寬度。 正如你可以在BorderLayout部分Visual guide to LayoutManagers教程中看到PAGE_STARTPAGE_END採取所有可用的寬度。

通過指定高度優選的大小,你會的getWidth()或的getHeight()分別得到所需要的結果

0

A BorderLayout可能是您想要使用的,它允許您將組件設置爲北,西,南,東和中心。

所以對於水平填充使用NORTH,垂直填充使用WEST和兩個CENTER。

+0

好的,但是如何設置按鈕的高度,當我將其設置爲南時,無需指定寬度? – Bober02 2012-08-02 14:48:28

+1

@ Bober02在處理佈局管理器時,只能提供「提示」。在這個例子中,你會提供你想要的按鈕的首選大小(而不必關心寬度)。 BorderLayout將使按鈕填充容器的水平寬度。 – MadProgrammer 2012-08-02 21:49:28

+0

偉大的提示,非常感謝 – Bober02 2012-08-03 07:20:33