我在检索文本区域中输入的值时遇到问题,它应该转到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;
}
}
答案 0 :(得分:0)
您所看到的是JList
尝试通过调用toString
方法(ArrayList#toString
)
你可能想做几件事......
一个,而不是将ArrayList
添加到ListModel
,而是添加它的内容(单个Post
个对象)
二,设计一个自定义ListCellRenderer
,它知道如何以您希望的方式呈现Post
对象,并将其应用于JList
。有关详细信息,请参阅Writing a Custom Cell Renderer。
您“可以”覆盖toString
对象的Post
方法,但我更愿意避免这样做,因为我喜欢toString
方法来提供调试信息以及JList
中呈现的对象可能不是您希望在JComboBox
或JTable
或JTree
中呈现的方式...
当然,您可以放弃所有这些,只需将retrievePost
添加到ListModel
...
答案 1 :(得分:0)
你必须在Post
中覆盖toString