编辑或刷新 JList

发布于 2024-12-11 05:28:36 字数 628 浏览 0 评论 0原文

我有一个简单的幻灯片程序,在应用程序的左侧,有一个 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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

旧瑾黎汐 2024-12-18 05:28:36

我要么实现我自己的 ListModel 要么我将使用 JGoodies Binding 将数据绑定到列表。使用 JGoodies 时,只要数组内容发生更改,您的视图模型就可以触发 PropertyChangeEvent,然后您的视图将自动更新。例如

Bindings.bind(myJList, new SelectionInList<String>
    (beanAdapter.getValueModel("listContents"),
     beanAdapter.getValueModel("listSelection")));

,视图模型类具有一个用于列表内容的属性和一个用于当前选择的属性。

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.

Bindings.bind(myJList, new SelectionInList<String>
    (beanAdapter.getValueModel("listContents"),
     beanAdapter.getValueModel("listSelection")));

with a view model class that has a property for the list contents and one for the current selection.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文