[英]Java/Netbeans: JList.getModel() returns a ListModel instead of a DefaultListModel
我正在使用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
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.