簡體   English   中英

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

[英]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 ,因為這是構造列表時傳遞的內容,則可以安全地將返回的ListModelDefaultListModel

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM