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