【问题标题】:JTextArea - setText() and append() not working in Listener method()JTextArea - setText() 和 append() 在 Listener method() 中不起作用
【发布时间】:2014-02-12 19:26:12
【问题描述】:

正如标题所说,我在左侧有一个 JList,在右侧有一个 JTextArea。

我在 makeTextPanel() 方法中为 JList 设置了侦听器,如下所示:

listSelectionModel = list.getSelectionModel();
listSelectionModel.addListSelectionListener(this);

在动作事件上被调用的方法是:

//This method is required by ListSelectionListener.
public void valueChanged(ListSelectionEvent e) {
    System.out.println("HEY");
    textArea.setText(null);
    textArea.setText("1: \n");
    textArea.append("2: \n");
    textArea.append("3: \n");
    textArea.append("4: \n");
    }

该事件发生是因为在终端中我可以看到“嘿”,但文本区域没有打印任何内容。如果我在创建 textarea 后尝试在 makeTextPanel() 方法中打印到 textarea,那么它将打印。怎么了?为什么它不会在事件方法 valueChanged 中打印?如果有人可以看看我在这里缺少什么,我将不胜感激。

完整代码:

【问题讨论】:

  • 您的代码中有一个error。我无法编译它。
  • 编辑了代码,它是公共构造函数的名称。我仍然不知道 textarea 出了什么问题

标签: java swing user-interface


【解决方案1】:

它按照您的代码工作。您已在全局范围内声明了 textAreaJList,因此这两个将仅保存最新实例,即您在制作 edit 选项卡时创建的实例。因此,如果您看到编辑选项卡,您的 textArea 将包含您在方法中设置的文本。

您必须为所有选项卡保留 textAreaList 的不同实例,然后才会产生所需的行为。

希望这会有所帮助。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-01-04
    • 1970-01-01
    • 1970-01-01
    • 2012-10-11
    • 2013-10-21
    • 2015-07-17
    • 2014-08-17
    • 1970-01-01
    相关资源
    最近更新 更多