2013-10-05 62 views
2

我試圖從數據文件中讀取信息並將其處理爲JTextArea,以獲取我正在創建的術語項目的about文件。問題是,當我做scanner.nextLine()它擴大文本區域以適應文本,我想要的是它保持文本區域的大小相同,並且如果它在當前行上空間不足以啓動停止擴展JTextArea

if(event.getSource() == forward) 
    { 
     text.setText(s.nextLine()); 
    } 

文本區的設置是這樣的:

 text = new JTextArea(11, 30); 

基本上我想知道的是,如果有一種方法是文本區域報價(我看),其搬遷到下一行空間,如果當前是充分。如果沒有辦法在文本區域進行操作,我很可能只是編輯數據文件。

回答

2

默認情況下,您可以使用JTextArea#setLineWrap(true)設置爲false。

設置文本區域的換行策略。如果設置爲true,則 線條將被纏繞,如果它們太長以至於不足以分配到所分配的 寬度。如果設置爲false,則線條將始終展開。 A 更改策略時觸發PropertyChange事件(「lineWrap」)。 默認情況下,此屬性爲false。

另見JTextArea#setWrapStyleWord(true)

這種方法實施例中SSCCE:

public class JTextAreaTest { 

    public static void main(String args[]){ 

     JFrame frame = new JFrame(); 
     JPanel panel = new JPanel(); 
     frame.add(panel); 
     JTextArea textArea = new JTextArea(11,30); 
     textArea.setLineWrap(true); 
     textArea.setWrapStyleWord(true); 
     textArea.setText("Hi how are you? Im testing this textarea and im seeing if it's wrapping words"); 
     textArea.append("SASASASASDASDASDASDASDASDADSASDASDASDASDAS"); 
     JScrollPane scrollPane = new JScrollPane(textArea); 
     panel.add(scrollPane); 

     frame.pack(); 
     frame.setVisible(true); 
    } 

} 

textArea example

8

放置JTextArea一個JScrollPane內滾動窗格添加到您的容器而不是

text = new JTextArea(11, 30); 
JScrollPane scrollpane = new JScrollPane(text); 
//... 
add(scrollpane); 

有關更多詳細信息,請參閱How to use Scroll Panes

這將防止滾動窗格在當前容器中增長。

還檢查出JTextArea#setLineWrapJTextArea#setWrapStyleWord這將影響組件如何處理超出可查看寬度的文本。

有關更多詳細信息,請參見How to use Text Areas