如何在程序运行时更新JList
?我正在从另一个类导入一个ArrayList
,并将其放入列表中。当用户在数组列表中添加内容时,我会将其显示在屏幕上的列表中。
答案 0 :(得分:3)
将ArrayList
换成某种ListModel
并使用JList
更改JList#setModel
的模型
有关详细信息,请参阅How to use Lists
您可以使用DefaultListModel
,每当您更新ArrayList
时,都需要使用add(int, E)
,addElement(E)
之类的内容更新DefaultListModel
, 3}},remove(int)
或removeElement(Object)
根据您的需求。
这将自动通知JList
对模型进行的更改
<强>更新强>
更复杂的方法可能是使用代理模式,您可以在其中创建ArrayList
代理,该代理提供有关何时更改的信息,该信息可以反映在自动模型中。这假设您要导入ArrayList
的班级要求您的班级提供ArrayList
的实例。
这样您就可以监控add
,set
和remove
方法并自动更改ListModel
...