【发布时间】:2011-05-13 00:31:30
【问题描述】:
我的最终目标是拥有一个在运行时刷新其内容的 JList,我从这篇帖子 here on SO 中找到了一个可行的解决方案,但是我很好奇为什么我最初的想法没有。
到目前为止,我有类似这样的设置,并且可以正常工作:
DefaultListModel default = new DefaultListModel();
for(int i = 0; i < array.size() ; ++i){
test.addElement(array.get(i));
}
list.setModel(default);
以下是我最初的计划。我希望有一个实现 ListModel 的类作为参数传递,希望它会刷新 JList。
SomeClass test = new SomeClass(); //Implements ListModel
list.setModel(test);
或
SomeClass test = new SomeClass(); //Implements ListModel
list = new JList(test);
这些都不起作用,这让我感到困惑。这最后两种方法能否起作用,代码更干净。
谢谢。
【问题讨论】:
-
传递一个类 ListModel 而不是这个类的一个实例是一个编译器错误。你为什么困惑?
-
我认为我的代码演示有点误导抱歉。这就是我正在做的,我将更改代码以使其更清晰。
-
为什么最后两种方法不起作用?请提供您看到的错误。如果
SomeClass扩展ListModel,那么这两种方法都可以。 -
您的 SomeClass 代码会很高兴看到。