无法通过jTextField显示所有对象的属性

时间:2018-05-30 07:26:00

标签: java swing jtextfield

我在尝试在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())));
}

1 个答案:

答案 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);