2013-10-02 62 views
0

我對創建Java GUI還不熟悉,而且我遇到了JTextArea的問題。我想解決它的高度(列數),但它似乎總是填充可用空間。我在互聯網上閱讀過,你應該把它放在一個JScrollPane中,我已經完成了,但是同樣的事情發生了。修復JTextArea的高度

這是一些示例代碼:

public class TestWindow extends JFrame { 

    public TestWindow() { 
     super(); 
     setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
     setSize(300, 200); 
     setLocationRelativeTo(null); 

     add(new JScrollPane(new JTextArea(5, 10))); 

     setVisible(true); 
    } 

} 

有了這個代碼,該JTextArea中塞滿了整個窗戶。任何方式我可以修復它到特定數量的行和列?它可能與佈局管理器有關嗎?

+1

難道你不是指「行數」來修復它的高度嗎? 「列」的數量隻影響其寬度。 – splungebob

回答

1

是,默認的佈局是BorderLayout它擴展的所有內容,以適應整個區域,必須設置一個新的佈局,我推薦的GridBagLayout的尺寸的廣泛的控制,或者是我最普遍使用,BoxLayout的

+0

謝謝。我爲我的實際程序使用GroupLayout。它與BorderLayout有相同的效果嗎?我應該改變爲另一種佈局嗎? –

2

你可以在BorderLayout.PAGE_START位置,尊重首選大小的高度

add(new JScrollPane(new JTextArea(5, 10)), BorderLayout.PAGE_START); 
+0

不包裝(:-) ......................... – mKorbel

+0

@mKorbel是的,你顯然需要在中心位置的東西 - 假設這是一個未完成的UI – Reimeus

0

在這種情況下(沒有其他佈局管理器)添加該組件,告訴列的數量將無法控制組件的高度。您需要使用setSize()手動設置它的大小。

+0

*「告訴列的數量不會控制組件的高度」*如果添加了「PAGE_START」或「PAGE_END」約束,它將會被添加。 –