这使我感到困惑。 我在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;
}
@Override
public int getSize() {
return this.data.size();
}
@Override
public 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;
}
那么我将如何显示对象中的文本? 非常感谢你。
答案 0 :(得分:0)
它只是显示对象的地址
JList
的默认渲染器仅调用对象的toString()
方法,默认情况下是对象地址。
您应该为JList提供一个自定义渲染器。渲染允许您访问对象并以所需的任何格式显示对象中的任何数据。阅读Using a Custom Renderer上Swing教程中的部分。
一个更简单的解决方案是在您的对象中实现自定义toString()
方法。尽管不建议使用这种方法,因为在调试时应使用toString()来描述对象。
此外,没有理由创建自定义ListModel
。您可以只使用DefaultListModel
来保存您的Request对象。