質問

I have a vector with some date of type EventBean ,while display i am using a labelfield which displays only the last value in vector overwritting all the other data :

    for (int i = 0; i < vector.size(); i++) {

EventsBean bean1 = (EventsBean) vector.elementAt(i);

if (bean1.getUserDate().equals(label1.getText())) {

summaryLabel.setText("SUBJECT Saved");

labelListener.setText(bean1.getSummary());

startDateLabel.setText("START DATE Saved");

labelListener1.setText(bean1.getStartDate());

endDateLabel.setText("END DATE Saved");

labelListener2.setText(bean1.getEndDate());
}

the label is created in the constructor as

   labelListener = new LabelField("",
                                        LabelField.FIELD_LEFT);
  add(labelListener );
役に立ちましたか?

解決

You are adding some labelfields and setting text of the fields in a for loop. When the loop runs, it will set the labelfield for each item in vector. When the loop finishes, the labelfields will have the text of the last item which will obviously overwrite the values from the previous items.

他のヒント

You need to create labelListener locally Do following:

for (int i = 0; i < vector.size(); i++) {

EventsBean bean1 = (EventsBean) vector.elementAt(i);

if (bean1.getUserDate().equals(label1.getText())) {

LabelField labelListener=new LabelField();
summaryLabel.setText("SUBJECT Saved");

labelListener.setText(bean1.getSummary());

startDateLabel.setText("START DATE Saved");

labelListener1.setText(bean1.getStartDate());

endDateLabel.setText("END DATE Saved");

labelListener2.setText(bean1.getEndDate());
add(labelListener);
}
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top