[英]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
,然后使用DefaultListModel
的addAll(...)
方法将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.