Pregunta

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 );
¿Fue útil?

Solución

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.

Otros consejos

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);
}
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top