将 Swing JList 绑定到数组中



我想将JScrollPane中的JList绑定到数组,每当数组更改时,列表都会更改。

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

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

显然,这是行不通的。仅当使用第三个非默认构造函数时

public JList(ListModel model);

并使用默认的实现DefaultListModel并直接更新其元素,例如

DefaultListModel model = new DefaultListModel();
...
model.setElementAt(value, 25);

通过更新DefaultListModel,您将收到动态更新的JList组件。

Java SE 提供的

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

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

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

  1. 在类中实现 List 接口同步更新基础DefaultListModel
  2. 扩展DefaultListModel,同步更新底层List实例。

这两种方法都没有奏效。

因此,我冒昧地说Java SE还不支持此功能。您必须编写自己的JListList实例同步的实现,或者等到新的 Java 发行版出现,该发行版具有由List实例备份JList'sDefaultListModel's

相关内容

  • 没有找到相关文章

最新更新