JTextArea不可编辑
问题描述:
我遇到了以下问题。我想有一个滚动的JTextArea,并创建一个这样的:JTextArea不可编辑
JScrollPane scrollableTextArea = new JScrollPane();
JTextArea text = new JTextArea();
scrollableTextArea.add(text);
的结果是,我有,我不能写入到一个灰色区域。
如果我像这样创建的JTextArea但是它的工作原理:
JScrollPane scrollableTextArea = new JScrollPane(new JTextArea());
哪里是我的错误,导致这种行为?
答
如果我创建的JTextArea这样但是它的工作原理:
JScrollPane中使用它自己的自定义布局管理器。滚动面板包含区域为:
- 水平/垂直滚动
- 一个“行标题”和“列标题”
- 部件在顶部/右和上/左滚动窗格
- 的“视口”,这是用于包含要滚动
当您使用以下组件:
scrollableTextArea.add(text);
这会搞乱滚动窗格,因为当你使用组件添加到滚动窗格直接而不是滚动窗格
的视口:
JScrollPane scrollableTextArea = new JScrollPane(new JTextArea(5, 20));
这将创建一个滚动窗格并将文本区域添加到滚动窗格的视口。
有关滚动窗格如何工作的更多信息,请参阅Swing教程中有关How to Use ScrollPanes的部分。
答
只需使用text.setEditable(true)
在初始化期间,尝试为'JTextArea'指定'ROWS/COLUMNS',比如'new JTextArea(10,10)',这会给它一些初始大小。之后,尝试调用'scrollableTextArea.setViewportView(text)',而不是将'text'添加到'JScrollPane'。您使用的布局类型可能会导致您不期待的内容。关于你写的东西的更多内容,将有助于我们对此做出更多反馈。 –