メイン クラスとプレーヤー クラスに 2 つの JList と 1 つの項目の ArrayList があります。
private ArrayList<Item> allItems= new ArrayList<Item>();
listItemsShop= new JList(allItems.toArray());
listItemsInv= new JList(currentPlayer.getAllItems().toArray());
おそらくほとんどの人が認識しているように、toArray メソッドはコレクション「allItems」の内容を配列として返します。これにより、JList コンポーネントで使用できるようになります。
次に、JList コンポーネントは、Items クラスの toString メソッドを呼び出し、その中のすべてを返します。例えば
@Override
public String toString() {
return name + "," + "$"+price;
}
これは、最初の JList 'listItemsShop' では問題ありませんが、2 番目の JList では価格を表示したくありません。2 番目の JList はインベントリなので、アイテムは購入されています。アイテム名と、損傷の量や状態などの詳細のみを表示したいのですが..
これを行う方法を知っている人はいますか?誰かが重複したクラスを作成し、2 番目のクラスをそのように toString メソッドに上書きしたことを読んだことがありますが、これは大きな冗長性のように思えます。誰かがこれを回避する別の方法を知っているなら、私はあなたから聞いてみたい.
乾杯