所以我一直在尝试使用DefaultListModel更新JList。现在我已经看过在线示例并且已经创建了更新模型的功能。我面临的问题是,即使在调用updateUI()方法之后,模型仍在更新,而不是UI。这是我的代码。
public void updateAthleteList() {
System.out.println("Trying to update");
//call updateUI() for the JList object
athletesModel.clear();
System.out.println(athleteList.size());
for(int i = 0; i < athleteList.size(); i++) {
System.out.println("Inside loop");
athletesModel.addElement(((Athlete) athleteList.get(i)).toStringCount());
}
athletesList.updateUI();
System.out.println(athletesModel.size());
System.out.println(athletesList.getModel().getSize());
}
输出线就在那里进行调试。如果能得到任何帮助,我将非常感激。提前谢谢。
更新
这次我使用过简单的字符串,模型正在更新,因为我打印了大小,但JList仍然没有变化。这是我的代码
public void updateAthleteList(Athlete newAthlete)
{
System.out.println("Trying to update");
//call updateUI() for the JList object
DefaultListModel tempModel = (DefaultListModel)athletesList.getModel();
tempModel.addElement("hij");
System.out.println(athletesList.getModel().getSize());
athletesList.setModel(tempModel);
athletesList.updateUI();
System.out.println(athletesList.getModel().getSize());
}
答案 0 :(得分:0)
将模型JList设置在某处?也许在它的构造函数中
JList s = new JList();
DefaultListModel x = (DefaultListModel) s.getModel(); //
或之后
//change athletesList.updateUI();
jList.setModel(athletesModel);