2017-04-14 74 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)

相关问题