gpt4 book ai didi

Java/Netbeans : JList. getModel() 返回 ListModel 而不是 DefaultListModel

转载 作者:行者123 更新时间:2023-12-01 14:46:33 25 4
gpt4 key购买 nike

我正在使用 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 感到困惑。

最佳答案

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

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

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

关于Java/Netbeans : JList. getModel() 返回 ListModel 而不是 DefaultListModel,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15393424/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com