0

我正在使用 NetBeans 7.3 创建一个 java 应用程序。
我有一个“创建新的 Foo”向导,它在多个框架之间共享一个 JPanel。
JPanel 对象实现了一个我设置的 JList,如下所示:

http://img811.imageshack.us/img811/5717/customcodepvmarketlist.jpg

使用另一个函数,我希望能够测试 JList 的内容,如下所示:

//Adds a market to the list, if it doesn't exist.
//Removes a market from the list, if it does exist.
//If removing a market causes the list to become empty,
//insert 'None'

public String modifyMarket(String market) {
    if(pvMarketList.getModel().contains(market)) {
        //More Code   
    }         
}

我无法在 '.contains(market)' 上进行上述测试,因为 .getModel() 返回的是 ListModel 而不是 DefaultListModel。

问题是什么?我怎样才能解决这个问题?

更新
我也许可以通过将 ListModel 转换为 DefaultListModel 来解决这个问题,但我仍然对为什么返回 ListModel 感到困惑。

4

1 回答 1

1

AJList需要一个实例ListModel才能工作。此实例可以是 的实例DefaultListModel,但您可以创建自己的ListModel实现并使用它来代替DefaultListModel.

顺便说一句,JList 的构造函数请注意,使用不是 DefaultListModel 实例的 ListModel 构造一个 JList。

如果您知道它是DefaultListModel, 因为这是您在构造列表时传递的内容,那么您可以安全地将返回的内容ListModel转换为DefaultListModel.

于 2013-03-13T18:52:02.477 回答