2012-12-12 346 views
1

嘿,我只是想知道,如果有一種方法來設置JTextField的寬度例如屏幕尺寸的50%。我知道如何讓屏幕的尺寸正好的JTextField將其設置爲字符而不是像素如何設置JTextField的像素大小

文本字段=新的JTextField(「路你好」,20)的數量;

是有辦法做到這一點?

+2

忘了集像素座標,必須使用正確的LayoutManger,有兩棵樹佈局管理,可以做到在默認情況下 – mKorbel

回答

2

設置的JTextField在像素尺寸導致你失望使用絕對定位是一般不建議的路徑。從Doing Without a Layout Manager

儘管可以不使用佈局管理器,但應該儘可能使用佈局管理器。佈局管理器也可以被其他容器以及其他程序輕鬆地重用。

查看現有layout managersavoid using the setXXXSize() component methods提供的功能。例如,可以使用GridLayout(或甚至GridBagLayout)將幀寬度調整爲幀客戶區域的50%。

-1

您可以使用setSize()方法來設置JTextField組件的大小。

public void setSize(int width, 
        int height) 

調整此組件的大小,使其具有寬度和高度。 參數: 寬度 - 組件的以像素爲單位 高度新寬度 - 組件的以像素爲單位

Javadoc中的新的高度:http://docs.oracle.com/javase/1.4.2/docs/api/java/awt/Component.html#setSize(int,INT)

編輯: 任何組件添加到GridLayout將被調整爲與添加的最大組件相同的大小。如果您希望組件保持其首選大小,然後將該組件包裝在JPanel中,然後面板將被調整大小:

也可以使用setPreferredSize而不是setSize

+0

HMM嘗試這一點,似乎並沒有改變大小。它仍然是文本字段內文本的寬度。 – Tom

+0

您使用哪種佈局?我更新了答案。 –

+1

永遠不要使用set [Preferred | Minimum | Maximum]大小。 http://stackoverflow.com/questions/7229226/should-i-avoid-the-use-of-setpreferredmaximumminimumsize-methods-in-java-swi – ignis