我遇到了以下问题。我想要一个可滚动的JTextArea并创建一个类似的:
JScrollPane scrollableTextArea = new JScrollPane();
JTextArea text = new JTextArea();
scrollableTextArea.add(text);
结果是我有一个灰色的字段,我无法写入。
如果我像这样创建JTextArea,它可以工作:
JScrollPane scrollableTextArea = new JScrollPane(new JTextArea());
导致这种行为的错误在哪里?
答案 0 :(得分:0)
只需使用text.setEditable(true)
答案 1 :(得分:0)
如果我像这样创建JTextArea,它可以工作:
JScrollPane使用自己的自定义布局管理器。滚动窗格包含以下区域:
使用以下内容时:
scrollableTextArea.add(text);
这会弄乱滚动窗格,因为该组件直接添加到滚动窗格而不是滚动窗格的视口
使用时:
JScrollPane scrollableTextArea = new JScrollPane(new JTextArea(5, 20));
这将创建一个滚动窗格,并将文本区域添加到滚动窗格的视口中。
阅读How to Use ScrollPanes上Swing教程中的部分,了解有关滚动窗格如何工作的更多信息。