繁体   English   中英

如何在 Java 中主动更新 JList

[英]How to actively update a JList in Java

我正在处理一个项目,其中一个参数是表格或列表需要显示它从文本文件中读取的多个名称。 我为此使用了 Swing 和 JList,但是我在实际使用新信息更新列表时遇到了很多麻烦。

public void selectTable(ArrayList<String> select) {
    DefaultListModel model = new DefaultListModel();
    model.addElement(select);
    selectList = new JList(model);
    selectList.setPreferredSize(new Dimension(690, 230));   
}

我一直读到你应该使用默认列表模型来更新它,但每次我尝试在 GUI 方面没有任何变化时,JList 保持空白。 通过调试器查看,我拥有的数组列表进入了添加元素方法,但没有任何变化

编辑:

在 JDK 11 中,您可以创建一个DefaultListModel ,然后使用DefaultListModeladdAll(...)方法将ArrayList添加到模型DefaultListModel

    ArrayList<String> items = new ArrayList<>();
    items.add("one");
    items.add("two");

    DefaultListModel<String> model = new DefaultListModel<>();
    model.addAll( items );

    JList<String> list = new JList<>(model);

原始答案(当我使用 JDK8 时):

您不能将ArrayList添加到DefaultListModel

您需要将ArrayList每一项分别添加到DefaultListModel

因此,您需要遍历ArrayList并使用addElement(...)方法将ArrayList中的每个项目添加到模型中。

此外,您不会在代码中显示将JList添加到JScrollPane然后将JScrollPane添加到框架的位置。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM