2014-05-08 86 views
1

我有一個Catalog類型的對象列表。類Catalog有一個名爲getName的方法,它返回對象的名稱。 我有List<Catalogue> catalogList = /*code to retrieve list*/顯示對象列表

我試過,但沒有奏效

JList jlist = new JList(catalogList.toArray()); 

我的問題是我怎麼在JList中顯示的名字呢?

回答

4

覆蓋在你的目錄類的toString()方法:

@Override 
public String toString() { 
    return getName();   
} 
0

您希望您的JList到只有從catalogList元素的名稱?因爲我看到你試圖目錄元素添加到JList的

JList jlist = new JList(); 
for(int i=0;i<catalogList.size();i++){ 
    jlist.add(catalogList.get(i).getName(); 
} 

可能是一個更有效的方式,然後這一點,但我認爲這是比較容易理解

1

你JList中包含的Catalog實例。默認情況下,它使用它包含的對象的toString()方法來顯示它們。因此,您的第一個選擇是在目錄中重寫toString()並使其返回名稱。

另一個更加通用和靈活的選項是設置自定義單元格渲染器,該列表將調用該自定義單元格渲染器來顯示每個Catalog對象。 Swing教程有examples