0

NetBeans 7.3 を使用して Java アプリケーションを作成しています。
複数のフレームで JPanel を共有する「Create New Foo」ウィザードがあります。
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   
    }         
}

.getModel() が DefaultListModel ではなく ListModel を返すため、「.contains(market)」で上記のテストを実行できません。

何が問題ですか?どうすればこれを修正できますか?

更新
ListModel を DefaultListModel としてキャストすることで問題を回避できる可能性がありますが、ListModel が返される理由については混乱しています。

4

1 に答える 1

1

Aが機能JListするにはのインスタンスが必要ListModelです。このインスタンスはのインスタンスである可能性がありますがDefaultListModel、独自のListModel実装を作成して、の代わりに使用することもできますDefaultListModel

ところで、JListのコンストラクターは、DefaultListModelのインスタンスではないListModelを使用してJListを作成することに注意してください。

それがであることがわかっている場合はDefaultListModel、リストを作成するときに渡したものであるため、返さListModelれたをに安全にキャストできますDefaultListModel

于 2013-03-13T18:52:02.477 に答える