Swing JList:如何从对象中显示字符串?

这让我很困惑。我在 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;

}

但是当我运行程序时,它只显示对象的地址: http://img1.mukewang.com/61de9ce90001549d01730017.jpg

那么我将如何显示对象中的文本?非常感谢你。


千万里不及你
浏览 243回答 1
1回答

繁星淼淼

它只显示对象的地址a 的默认渲染器JList只是调用toString()对象的方法,默认情况下是对象地址。您应该为您的 JList 提供自定义渲染器。渲染允许您访问对象并以您希望的任何格式显示来自对象的任何数据。阅读 Swing 教程中有关使用自定义渲染器的部分。一个更简单的解决方案是toString()在您的对象中实现自定义方法。虽然不推荐这种方法,因为在调试时应该使用 toString() 来描述对象。此外,没有理由创建自定义ListModel.&nbsp;您可以只使用DefaultListModel来保存您的请求对象。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java