2012-12-12 16 views
2

我有一個JList它設置爲ArrayList天。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); 
    } 
} 

當列表呈現,它顯示每個列表項爲 「[email protected]」 的實例。 有沒有辦法讓固定的字符串顯示用戶(即Day1),同時仍然保留整個對象在列表中檢索?

回答

4

使用自定義cell renderer作爲列表根據需要設置視圖的格式。或者,您可以爲對象定義toString(),但渲染器更通用。

2

我想你必須覆蓋toString()方法後,將jList擴展到您自己的列表。

2

只需重寫toString()方法,沿

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

線的toString默認實現將返回[email protected]

3

重寫ToString方法在天等級:

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