JTextArea不可编辑

时间:2017-04-14 15:45:46

标签: java swing jtextarea

我遇到了以下问题。我想要一个可滚动的JTextArea并创建一个类似的:

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

结果是我有一个灰色的字段,我无法写入。

如果我像这样创建JTextArea,它可以工作:

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

导致这种行为的错误在哪里?

2 个答案:

答案 0 :(得分:0)

只需使用text.setEditable(true)

即可

答案 1 :(得分:0)

  

如果我像这样创建JTextArea,它可以工作:

JScrollPane使用自己的自定义布局管理器。滚动窗格包含以下区域:

  1. 水平/垂直滚动条
  2. a"行标题"和#34;列标题"
  3. 滚动窗格顶部/右侧和顶部/左侧的组件
  4. " viewport"用于包含要滚动的组件
  5. 使用以下内容时:

    scrollableTextArea.add(text);
    

    这会弄乱滚动窗格,因为该组件直接添加到滚动窗格而不是滚动窗格的视口

    使用时:

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

    这将创建一个滚动窗格,并将文本区域添加到滚动窗格的视口中。

    阅读How to Use ScrollPanes上Swing教程中的部分,了解有关滚动窗格如何工作的更多信息。