我有一个字符串数组,我想动态应用为JList中的项目。数组中的项目将经常更改,因此Jlist模型也需要更改。这是我现在拥有的一个例子:
listAvail = new JList();
listAvail.setBorder(
new TitledBorder(null, "", TitledBorder.LEADING, TitledBorder.TOP, null, null));
listAvail.setModel(new AbstractListModel()
{
String[] values = new String[] { "Feature 1", "Feature 2", "Feature 3", "Feature 4",
"Feature 5" };
public int getSize()
{
return values.length;
}
public Object getElementAt(int index)
{
return values[index];
}
});
scrollPane.setViewportView(listAvail);
我想用这样的代码替换代码:
listAvail = new JList();
listAvail.setBorder(
new TitledBorder(null, "", TitledBorder.LEADING, TitledBorder.TOP, null, null));
listAvail.setModel(new AbstractListModel()
{
String[] values = new String[5];
for (int i = 0; i < 5; i++)
{
values[i] = "Feature" + i;
}
public int getSize()
{
return values.length;
}
public Object getElementAt(int index)
{
return values[index];
}
});
scrollPane.setViewportView(listAvail);
我做错了什么?
答案 0 :(得分:2)
不要创建自定义ListModel。
您可以使用DefaultListModel
。它有add(...)
和remove(...)
等方法,可以动态更新数据。