2017-04-14 176 views
0

我遇到了以下問題。我想有一個滾動的JTextArea,並創建一個這樣的:JTextArea不可編輯

JScrollPane scrollableTextArea = new JScrollPane(); 
JTextArea text = new JTextArea(); 
scrollableTextArea.add(text); 

的結果是,我有,我不能寫入到一個灰色區域。

如果我像這樣創建的JTextArea但是它的工作原理:

JScrollPane scrollableTextArea = new JScrollPane(new JTextArea()); 

哪裏是我的錯誤,導致這種行爲?

+0

在初始化期間,嘗試爲'JTextArea'指定'ROWS/COLUMNS',比如'new JTextArea(10,10)',這會給它一些初始大小。之後,嘗試調用'scrollableTextArea.setViewportView(text)',而不是將'text'添加到'JScrollPane'。您使用的佈局類型可能會導致您不期待的內容。關於你寫的東西的更多內容,將有助於我們對此做出更多反饋。 –

回答

0

如果我創建的JTextArea這樣但是它的工作原理:

JScrollPane中使用它自己的自定義佈局管理器。滾動面板包含區域爲:

  1. 水平/垂直滾動
  2. 一個「行標題」和「列標題」
  3. 部件在頂部/右和上/左滾動窗格
  4. 的「視口」,這是用於包含要滾動

當您使用以下組件:

scrollableTextArea.add(text); 

這會搞亂滾動窗格,因爲當你使用組件添加到滾動窗格直接而不是滾動窗格

的視口:

JScrollPane scrollableTextArea = new JScrollPane(new JTextArea(5, 20)); 

這將創建一個滾動窗格並將文本區域添加到滾動窗格的視口。

有關滾動窗格如何工作的更多信息,請參閱Swing教程中有關How to Use ScrollPanes的部分。

0

只需使用text.setEditable(true)