编辑或刷新 JList
我有一个简单的幻灯片程序,在应用程序的左侧,有一个 JList,它显示当前应用程序上的幻灯片。我可以保存和加载幻灯片。问题是,当我尝试从 XML 文件加载幻灯片时,我无法删除 JList 中的所有项目并添加它们。因为当我通过 model.removeAllElements();
删除元素,然后尝试通过; 添加项目时
for(int i=0; i<mL.size(); i++){
model.add(i, "Slide No: " + i);
slideCounter++;
}
然后将调用 valueChanged 函数,并且因为我在该函数中从 arrayList 获取元素,所以它给出了 ArrayIndexOutOfBoundsException
因此,在我的 load 方法中,我创建了一个新的空列表(dMode),然后我用幻灯片数初始化列表:
list = new JList(dMode);
jScrollPane1 = new JScrollPane(list);
但我无法将新列表分配给当前列表。
你有什么建议,我应该如何解决这个问题?
谢谢。
I have a simple slide program, and left side of my application, there is a JList
which shows the slides on the current application. I can save and load the slides. The problem is, when I'm trying to load the slides from XML file, I cannot delete all items, in the JList, and add them. Because when I remove elements by model.removeAllElements();
and then trying to add items by;
for(int i=0; i<mL.size(); i++){
model.add(i, "Slide No: " + i);
slideCounter++;
}
Then valueChanged
function will be called, and because I'm getting elements from arrayList in that function, it gives ArrayIndexOutOfBoundsException
Therefore, in my load method, I create a new empty list(dMode), then I initialize the list with the number of slides by:
list = new JList(dMode);
jScrollPane1 = new JScrollPane(list);
but I cant assign new list to the current list.
What is your advice, how should I solve this ?
Thanks.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
我要么实现我自己的 ListModel 要么我将使用 JGoodies Binding 将数据绑定到列表。使用 JGoodies 时,只要数组内容发生更改,您的视图模型就可以触发
PropertyChangeEvent
,然后您的视图将自动更新。例如,视图模型类具有一个用于列表内容的属性和一个用于当前选择的属性。
I would either implement my own ListModel or I would bind the data to the list using JGoodies Binding. When using JGoodies your view model could fire a
PropertyChangeEvent
whenever your array contents changes and your view will then be updated automatically. E.g.with a view model class that has a property for the list contents and one for the current selection.