2014-02-12 58 views
3

由于标题说我有左侧的JList和右侧的JTextArea。JTextArea - setText()和append()不工作在侦听器方法()

设置我的侦听器(JList中的makeTextPanel)方法是这样的:

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"); 
    } 

事件发生,因为在终端,我可以看到“HEY”,但没有打印到文本区。如果我在创建textarea后尝试在makeTextPanel()方法中打印到textarea,那么它将打印。哪里不对?为什么不在事件方法valueChanged中打印?我真的很感激,如果有人可以看看我在这里失踪。

Full code:

+0

你的代码中有一个'error'。我无法编译它。编辑代码 – Aarav

+0

,这是公共构造函数的名字。我仍然不知道textarea出了什么问题,虽然 – user2644819

回答

5

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

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

希望这会有所帮助。

+0

+1斑点:-) – kleopatra

+0

@kleopatra谢谢:) – Sanjeev

相关问题