這是我第一次使用任何StackExchange網站,所以讓我們看看它是怎麼回事。當JTextArea超過一定數量的行時啓用滾動條
所以我一直在用Java創建一個'本地'聊天程序,並使用JTextField進行聊天輸入。但我想允許多線聊天,所以我切換到JTextArea。我正在使用GroupLayout(使用Window Builder Pro - eclipse構建),以便輕鬆調整窗口/組件大小。這裏有一個畫面:
JTabbedPane的,對的JTextArea和發送按鈕都包含在一個JPanel,和所有的東西向左是在它自己的JPanel。所以我有JTextArea和按鈕停靠在右側JPanel的底部。 JTextArea允許垂直調整大小,但按鈕不是。 我是能夠得到當我輸入新線的JTextArea垂直成長,下面顯示:
但我無法想出一個辦法,這樣,如果我輸入一定量的線成JTextArea,滾動條會出現並阻止JTextArea佔用更多的空間。 所以我試圖在JScrollPane中包裝JTextArea,但最初禁用滾動條,然後在我需要JTextArea開始滾動時啓用它們,但我知道如果我包裝它,JScrollPane不會增長,但仍然會像它那樣操作滾動條可見,但沒有它們。 :/
**我想在這裏把一個鏈接,但StackOverflow上不喜歡我;)
所以,我有點卡住...... 是否有東西做這個,我」失蹤了? 我在想我可以創建兩個不同的GroupLayout對象,其中一個的scrollpane甚至不是有效的,然後其他的scrollpane是有效的,但是會停留在一定的大小。在keyPress監聽器上,我可以檢查文本區域是否超過了某個限制,然後它會切換面板的佈局?內部的JTextArea仍然是同一個對象,但只是不同的佈局對象。關於這種方法的意見?
無論如何,先謝謝所有花時間回答這個問題的人。 :)
謝謝soooo多! 我使用了DocumentListener代碼並對GroupLayout進行了一些自定義修改,並且它的工作方式類似於一個魅力:D – 2012-02-22 03:08:45
對於'DocumentListener'爲+1;另請參閱此相關的[示例](http://stackoverflow.com/q/15039652/230513)。 – trashgod 2013-02-23 15:50:51
我知道這個問題在5年內還沒有被激活,但是參考你的回答,@ughzan,'revalidate()'代碼是否也可以在JScrollPane或任何其他JTextArea的父級元素中工作? – Ryan 2017-03-02 15:08:37