2

オブジェクトの ArrayList があります (OrderItem というクラス)。OrderItem には toString() メソッドがあります。

JListを持つGUIクラスもあります。arrayLists の要素のすべての toString() をリストしたいと思います。

文字列のarrayListの場合、次を使用してJListに表示できることを知っています。

ArrayList<String> myArrayList  = new ArrayList<String>();
myArrayList.add("Value1");
myArrayList.add("Value2");
myJList = new JList(myArrayList.toArray());

しかし、オブジェクト arrayList の toString() メソッドをリストしたい、つまり、次のようなものがあります。

ArrayList<OrderItem> myArrayList  = new ArrayList<OrderItem>();
myJList = new JList(myArrayList.toString());

JList がそのような機能をサポートしていないか、何らかの論理的な問題がある可能性があることを認識しています。もしそうなら、その理由を教えていただけますか?文字列の arrayList は、オブジェクト arrayList の toString() と同じように機能するはずだからです。要素の文字列値を取り出して、それらの値をリストに使用したいだけです。

Web で回答を検索しましたが、役立つ回答が見つからなかったため、この問題を解決するためにここに来ました。

どうもありがとう!

4

3 に答える 3

4

デフォルトでJListtoString、オブジェクトの値が表示されます。したがって、オブジェクトを文字列に変換する必要はありません。

JListカスタム セル レンダラーを作成することで、必要に応じて の動作をオーバーライドできます。詳細については、リストの使用方法を参照してください。

于 2012-04-25T17:01:26.810 に答える
1

リストを配列に変換してからリストに入れることができます。

ArrayList<OrderItem> myArrayList  = new ArrayList<OrderItem>();
OrderItem[] items = new OrderItem[myArrayList.size()];
myArrayList.toArray(items);
myJList = new JList(items);
于 2012-04-25T17:01:14.463 に答える
0

実際には、toArray() メソッドは arrayList 内の各項目を表示します。デフォルトでは、JList は何も表示しません。必要に応じて可視性を設定する必要があります。

完全なオブジェクトではなく、単にオブジェクトの toString メソッドをリストに表示しようとしているようです。つまり、単に文字列表現を表示したいだけです。配列表現の代わりに。

表示したいデータを表すように配列を書き換えることができます (配列が構築されるときに "toString コンストラクトを提供します)。

ArrayList<> myNewArrayList =  new ArrayList<OrderItem>();
for (int i=0; i< oldArray.size(); i++)
{    
    newArray.add(oldArray.get)i).toString(); 
}
    ...  rest of code  ...

次に、パネルで新しい配列を使用し、インデックスをオブジェクト処理用のオブジェクト配列への参照として使用します。

HTH LLB

于 2014-07-24T08:22:07.943 に答える