这让我很困惑。我在 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
提交
取消
