将Swing JList绑定到数组中

时间:2011-05-19 03:33:12

标签: java swing user-interface jlist

每当数组更改List更改时,我想将JScrollPane中的JList绑定到数组。

1 个答案:

答案 0 :(得分:1)

当然,第一个想法是使用JList的一个构造函数,并希望JList组件与数组同步更新:

public JList(Object[] listData);
public JList(Vector<?> listData);

显然,这没有用。仅,如果您使用第三个非默认构造函数

public JList(ListModel model);

并使用默认实现DefaultListModel并直接通过例如

更新其元素
DefaultListModel model = new DefaultListModel();
...
model.setElementAt(value, 25);

通过更新JList

,您会收到动态更新的DefaultListModel组件

Java SE提供的是java.util.Arrays.asList(T... a)方法的“固定大小列表备份指定数组”,比较Java SE API

但是,这里 Java SE 的支持中断了。没有ListModel实现“由列表备份”。

我已经尝试过两种方法来克服这个问题:

  1. 在同步更新的类中实现List接口 基础DefaultListModel
  2. 扩展DefaultListModel,同步更新基础List实例。
  3. 两种方式都没有效果。

    因此,我冒昧地说 Java SE尚不支持此功能。您必须编写由JList实例同步的List实现的代码,或者等到新的Java分发出现,其中JList'sDefaultListModel's由{List备份。 1}}实例。