检索ArrayList的值

时间:2014-10-17 02:56:39

标签: java

我在检索文本区域中输入的值时遇到问题,它应该转到arraylist并在JList中输出值。

输入:Hello Everyone(来自Textarea) 输出:发布@ 12ee5d3c(到JList而不是Hello Everyone,我得到了)

这是我的代码

 private void postButtonActionPerformed(java.awt.event.ActionEvent evt) {                                           

    String retrievePost = thePost.getText();

    Post obj = new Post();
    obj.setPost(retrievePost);

    ArrayList arr = new ArrayList();
    arr= obj.getPosts(); 

    int index = showPostStatus.getSelectedIndex(); 

    if (index == -1) 
        index = 0;

    else 
        index++;

    model.insertElementAt(arr,index);
    showPostStatus.setModel(model);}

这是Post Class的代码

import javax.swing.*;

public class Post {
    private String content;
    Post() {
    }   
    public void setPost(String show) {
        this.content = show;
    }
    public String getPost() {
        return this.content;
    }
    public ArrayList<Post> getPosts() {
        ArrayList<Post> p = new ArrayList<Post>();

        Post a = new Post();
        a.getPost();

        p.add(a);

        return p;
    }   
}

2 个答案:

答案 0 :(得分:0)

您所看到的是JList尝试通过调用toString方法(ArrayList#toString

来呈现对象值

你可能想做几件事......

一个,而不是将ArrayList添加到ListModel,而是添加它的内容(单个Post个对象)

二,设计一个自定义ListCellRenderer,它知道如何以您希望的方式呈现Post对象,并将其应用于JList。有关详细信息,请参阅Writing a Custom Cell Renderer

您“可以”覆盖toString对象的Post方法,但我更愿意避免这样做,因为我喜欢toString方法来提供调试信息以及JList中呈现的对象可能不是您希望在JComboBoxJTableJTree中呈现的方式...

当然,您可以放弃所有这些,只需将retrievePost添加到ListModel ...

答案 1 :(得分:0)

你必须在Post

中覆盖toString