2012-02-10 9 views
1

に属性の特定のインスタンスを追加し、我々はインスタンス化されたオブジェクトの次の配列を持っていると言う:はJListの

SomeClass[] items = {new SomeClass("Apples", 1.99f, 0.311f), 
new SomeClass("Oranges", 0.99f, 0.396f), 
new SomeClass("Bananas",2.99f,2.27f)}; 

コンストラクタは、文字列名、フロート価格、フロート重量であると仮定します。

は、だから今、私はするJListを作成し、JScrollPaneの中にそれを置く:

itemsList = new JList(items); 
ScrollPane itemsListScrollPane = new JScrollPane(itemsList); 

はname属性が現れるように、スクロールペインに表示何上書き(および破棄する方法はあります他の属性)のように、SomeClassクラスのtoString()メソッドをオーバーライドしないでください。

Apples 
Oranges 
Bananas 

ご不明な点がございましたら、明確にすることをお勧めします。

ありがとうございました。

編集: 名前属性の文字列値を返し、JListにのみ表示させるgetName()という名前のSomeClassメソッドを使用する方法がありますか?

+0

なぜtoString()メソッドをオーバーライドしたくないのですか?マウスを使わずにオレンジを選択してドロップダウンリストを表示することができるという利点があります。 – camickr

+0

私は既にtoString()メソッドを何か他のものに使用しています。 – user1202888

答えて

3

JListにListCellRendererを設定することができます。何をレンダリングするかは自由に選択できます。 See also the official doc about JList

+0

ちょっとGuillaume、ありがとう、私は[this](http://www.java2s.com/Code/Java/Swing-JFC/UseJListcomponenttodisplaycustomobjectswithListCellRenderer.htm)をチェックしています。 私はちょうど明確にしたい、例えば文字列の値を返すgetName()と呼ばれるSomeClassのために書かれたメソッドを使用して、JListにそれを表示させる方法がありますか? – user1202888

+0

あなたのレンダラはあなたが好きなことをすることができます。 getName()メソッドを呼び出して、問題のないラベルのテキストを設定する場合。 – camickr