JList设置为ArrayList,显示预设标题

时间:2012-12-12 10:03:44

标签: java swing jlist

我的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),同时仍然保持整个对象在列表中检索?

5 个答案:

答案 0 :(得分:4)

使用列表的自定义cell renderer根据需要格式化视图。或者,您可以为对象定义toString(),但渲染器更通用。

答案 1 :(得分:4)

您需要提供能够按照您希望的方式描绘数据的ListCellRenderer

结帐How to use Lists了解更多信息

答案 2 :(得分:3)

覆盖Day类中的toString方法:

@Override
public String toString() {
    return "Day" + date.toString(); 
}

答案 3 :(得分:2)

我猜你必须在将jList扩展到你自己的列表之后覆盖toString()方法。

答案 4 :(得分:2)

只需覆盖

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

toString的默认实施将返回objectName@hashCode