我有一個Catalog類型的對象列表。類Catalog
有一個名爲getName
的方法,它返回對象的名稱。 我有List<Catalogue> catalogList = /*code to retrieve list*/
顯示對象列表
我試過,但沒有奏效
JList jlist = new JList(catalogList.toArray());
我的問題是我怎麼在JList中顯示的名字呢?
我有一個Catalog類型的對象列表。類Catalog
有一個名爲getName
的方法,它返回對象的名稱。 我有List<Catalogue> catalogList = /*code to retrieve list*/
顯示對象列表
我試過,但沒有奏效
JList jlist = new JList(catalogList.toArray());
我的問題是我怎麼在JList中顯示的名字呢?
覆蓋在你的目錄類的toString()方法:
@Override
public String toString() {
return getName();
}
您希望您的JList到只有從catalogList元素的名稱?因爲我看到你試圖目錄元素添加到JList的
JList jlist = new JList();
for(int i=0;i<catalogList.size();i++){
jlist.add(catalogList.get(i).getName();
}
可能是一個更有效的方式,然後這一點,但我認爲這是比較容易理解
你JList中包含的Catalog
實例。默認情況下,它使用它包含的對象的toString()
方法來顯示它們。因此,您的第一個選擇是在目錄中重寫toString()
並使其返回名稱。
另一個更加通用和靈活的選項是設置自定義單元格渲染器,該列表將調用該自定義單元格渲染器來顯示每個Catalog對象。 Swing教程有examples。