2012-03-18 85 views
1

這裏是我在我的程序中使用netbeans的textarea。第一張圖片顯示了運行程序時textarea的樣子。第二個圖像是在按下一個按鈕後顯示textarea,該按鈕在文本區域添加了約50個「Hello world」字符串 - 只顯示前6個。我需要textarea的高度來動態增加以適應所有這些字符串。任何人都知道如何做到這一點?動態調整textarea的大小以適應內容

編輯:我不想滾動條,所以使用JScrollPane不是一個選項。

enter image description here

enter image description here

+1

*「我需要textarea的高度動態增加」*不要這樣做,只需將其放入一個'JScrollPane'並在添加新文本時滾動到結尾。 – 2012-03-18 11:19:41

+0

我的程序要求我不使用滾動窗格。我不希望textareas一側的滾動條。 – 2012-03-18 11:24:46

+0

程序是否要求文本是可選擇的或可編輯的? – 2012-03-18 11:25:32

回答

1

附上的JTextArea內一個JScrollPane

JTextArea textArea = new JTextArea(); 
JScrollPane scrollArea = new JScrollPane(textArea); 

如果需要滾動基於這將動態地改變文本區域或不

+0

不要調用'setBounds'。使用列和行數(在構造函數中或通過公共方法)調整文本區域的大小,然後使用帶填充和邊框的佈局來定位文本區域。如果您編輯答案以刪除對「setBounds」的任何引用,我可以刪除我的評論和最高票數。 – 2012-03-18 11:24:16

+0

@AndrewThompson只是好奇爲什麼在這裏不建議調用setBounds? – sachinrahulsourav 2012-03-18 11:28:32

+0

由於正確的方式,我在*之後立即描述了「不要調用setBounds」。*如果佈局管理器存在,邊界可能會被忽略。關於使用佈局管理器,請參閱[setLayout(null)從不需要。永遠!(https://forums.oracle.com/forums/thread.jspa?threadID=1351374) – 2012-03-18 11:33:01

3

我不會使用JTextArea除了原型設計之外的任何東西。它具有記事本的苦功能。但這取決於你。

我會使用JEditorPane或JTextPane。我知道你不能根據字符大小來確定它的大小,但這是最好的。對於文字換行,你可以做setContentType(「text/html」);並將文字包裝在<'p> <'/ p>標記中。

(請注意,您仍然可以使用JScrollPane的滾動事實上,滾動面板適用於任何組件)

見的差異:http://docs.oracle.com/javase/tutorial/uiswing/components/editorpane.html

相關問題