Java JTextArea-setText()和append()在侦听器方法()中不起作用
正如标题所说,我在左侧有一个JList,在右侧有一个JTextArea 我在makeTextPanel()方法中为JList设置侦听器,如下所示:Java JTextArea-setText()和append()在侦听器方法()中不起作用,java,swing,user-interface,Java,Swing,User Interface,正如标题所说,我在左侧有一个JList,在右侧有一个JTextArea 我在makeTextPanel()方法中为JList设置侦听器,如下所示: listSelectionModel = list.getSelectionModel(); listSelectionModel.addListSelectionListener(this); 其中,对操作事件调用的方法是: //This method is required by ListSelectionListener. public vo
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,则它将打印。怎么了?为什么它不在方法值更改的事件中打印?如果有人能看看我在这里遗漏了什么,我将不胜感激
完整代码:它按照您的代码工作。您已在全局范围内声明了
textArea
和JList
,因此这两个实例将仅保存您在创建edit
选项卡时创建的最新实例。因此,如果您看到编辑选项卡,您的textArea
将包含您在方法中设置的文本
您必须为所有选项卡保留textArea
和List
的不同实例,然后只有它才能产生所需的行为
希望这有帮助。您的代码中有一个
错误。我无法编译它。编辑代码时,它是公共构造函数的名称。不过我还是不知道文本区出了什么问题