JList-won';t在javax.swing中更新
我有一个带有JFrame、JButton和JList的简单代码,单击按钮后应该更新哪些内容: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
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);
主要问题是您混淆了变量和实例:您需要更新现有实例的状态,而不是使用全新实例更新变量