JList-won';t在javax.swing中更新

JList-won';t在javax.swing中更新,java,swing,jframe,jbutton,jlist,Java,Swing,Jframe,Jbutton,Jlist,我有一个带有JFrame、JButton和JList的简单代码,单击按钮后应该更新哪些内容: private void btnUpdateListActionPerformed(java.awt.event.ActionEvent evt) { //A default list model containing two strings is created. DefaultListModel listMo

我有一个带有JFrame、JButton和JList的简单代码,单击按钮后应该更新哪些内容:

private void btnUpdateListActionPerformed(java.awt.event.ActionEvent evt) {    
                                 
    //A default list model containing two strings is created.
    DefaultListModel listModel = new DefaultListModel();
    listModel.addElement("hello");
    listModel.addElement("bye");

    //The JList is updated so that it contains the strings of the default list model.
    list = new JList(listModel);
}  
但是,按下按钮后,什么也没有发生;列表将保留其原始值:



如何解决此问题以使列表根据需要更新?

不要创建新的JList

//The JList is updated ....
list = new JList(listModel);
这并不是“更新JList”,而是创建一个新实例,一个从未显示的实例,并且显示的JList(现在不再被列表变量引用)根本不会更改

而是设置现有列表的模型:

list.setModel(listModel);
主要问题是您混淆了变量和实例:您需要更新现有实例的状态,而不是使用全新实例更新变量