2

JList日に設定されているがArrayListあります。

public void setCalender(ArrayList<Day> calender) {
    this.calender = calender;
    listDays.setListData(this.calender.toArray());
}

各日には、日付/ID と 3 つの期間が含まれます。

public class Day {
    private int date;
    private Period p1;
    private Period p2;
    private Period p3;

    public Day(int date) {
        this.date = date;
        p1 = new Period(1);
        p2 = new Period(2);
        p3 = new Period(3);
    }
}

リストがレンダリングされると、各リスト項目がたとえば「kkbs.Day@4d182e1e」として表示されます。リスト内のオブジェクト全体を取得したまま、固定文字列を作成してユーザー (つまり Day1) を表示する方法はありますか?

4

5 に答える 5

4

リストにカスタムセルレンダラーを使用して、必要に応じてビューをフォーマットします。または、オブジェクトのを定義することもできますtoString()が、レンダラーの方が用途が広いです。

于 2012-12-12T10:06:56.117 に答える
4

ListCellRendererあなたはあなたが望むようにあなたのデータを描写することができる能力を供給する必要があります

詳細については、リストの使用方法を確認してください

于 2012-12-12T10:07:53.673 に答える
3

Day クラスの toString メソッドをオーバーライドします。

@Override
public String toString() {
    return "Day" + date.toString(); 
}
于 2012-12-12T10:09:14.437 に答える
2

toString()jListを自分のリストに拡張した後、メソッドをオーバーライドする必要があると思います。

于 2012-12-12T10:06:53.080 に答える
2

toString()次の行に沿って、メソッドをオーバーライドするだけです。

public String toString()
{
    return "whatever string representation of your day class it is you want to return";
}

のデフォルトの実装はtoStringを返しobjectName@hashCodeます。

于 2012-12-12T10:07:06.477 に答える