Столкнувшись с проблемой в labelfield - PullRequest
0 голосов
/ 15 марта 2012

У меня есть вектор с некоторой датой типа EventBean, в то время как для отображения я использую поле метки, которое отображает только последнее значение в векторе, перезаписывая все остальные данные:

    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());
}

метка создается вконструктор как

   labelListener = new LabelField("",
                                        LabelField.FIELD_LEFT);
  add(labelListener );

Ответы [ 2 ]

0 голосов
/ 16 марта 2012

Вам нужно создать labelListener локально Сделайте следующее:

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);
}
0 голосов
/ 15 марта 2012

Вы добавляете несколько полей меток и устанавливаете текст полей в цикле for. Когда цикл запускается, он устанавливает поле метки для каждого элемента в векторе. Когда цикл завершится, поля меток будут иметь текст последнего элемента, который, очевидно, будет перезаписывать значения из предыдущих элементов.

...