我在尝试在jTextField中显示每个单独对象的属性(例如ID,标题等)时遇到问题。
我能够获取列表中最后一个对象的输出,但是当我在GUI中单击它们时,我无法访问它们之前的那些。
我需要添加什么来循环才能访问列表/模型中的所有元素,而不仅仅是最后一个元素?下面是我的代码,谢谢你
for (int i = 0; i < list.size(); i++) {
model.addElement(list.get(i));
jTextFieldID.setText(model.get(i).getId());
jTextFieldTitle.setText(model.get(i).getTitle());
jTextFieldSubreddit.setText(model.get(i).getSubreddit());
jTextAreaSelfText.setText(model.get(i).getSelftext());
jTextFieldAuthor.setText(model.get(i).getAuthor());
jTextFieldCreated.setText(model.get(i).getCreated());
jTextFieldScore.setText(Integer.toString((model.get(i).getScore())));
}
答案 0 :(得分:1)
您目前拥有的是项目的迭代。
对于每个项目,您将在每个文本字段中设置值。当然,JTextField.setText(String)
将此TextComponent的文本设置为指定的文本。如果文本为null或为空,则具有简单删除旧文本的效果。
因此,同一文本字段上的每个调用都将替换之前的值。
现在你想要的是设置特定项目的值,你所做的就是获取实例并更新文本字段。
public void setTextField(RedditPost post)
jTextFieldID.setText(post.getId());
jTextFieldTitle.setText(post.getTitle());
jTextFieldSubreddit.setText(post.getSubreddit());
jTextAreaSelfText.setText(post.getSelftext());
jTextFieldAuthor.setText(post.getAuthor());
jTextFieldCreated.setText(post.getCreated());
jTextFieldScore.setText(Integer.toString((post.getScore())));
}
您需要根据触发调用此方法的事件来恢复实例。
RedditPost post = list.get(/* basd on the event*/);
setTextField(post);