這讓我很困惑。我在 JList 中添加對象,如下所示:public class RequestListModel extends AbstractListModel<Request> {private static final long serialVersionUID = 1L;private List<Request> data = null;public RequestListModel (List<Request> data) { this.data = data;}@Overridepublic int getSize() { return this.data.size();}@Overridepublic Request getElementAt(int index) { Request request = data.get(index); return request;}}private JList<Request> getList() { ListModel<Request> model = new RequestListModel(this.requestList); if(jlist_from == null) { jlist_from = new JList<Request>(model); } else { jlist_from.setModel(model); } return jlist_from;}但是當我運行程序時,它只顯示對象的地址: 那么我將如何顯示對象中的文本?非常感謝你。
1 回答

繁星淼淼
TA貢獻1775條經驗 獲得超11個贊
它只顯示對象的地址
a 的默認渲染器JList
只是調用toString()
對象的方法,默認情況下是對象地址。
您應該為您的 JList 提供自定義渲染器。渲染允許您訪問對象并以您希望的任何格式顯示來自對象的任何數據。閱讀 Swing 教程中有關使用自定義渲染器的部分。
一個更簡單的解決方案是toString()
在您的對象中實現自定義方法。雖然不推薦這種方法,因為在調試時應該使用 toString() 來描述對象。
此外,沒有理由創建自定義ListModel
. 您可以只使用DefaultListModel
來保存您的請求對象。
添加回答
舉報
0/150
提交
取消