2010-09-22 3 views
1

Предположим, у меня есть две формы: form1 и form2.Проблема обновления GUI в J2ME

После нажатия NEXT_COMMAND в form1, мне нужно изменить значение gauge в form2, а затем показать form2. Таким образом:

public void commandAction(Command command, Displayable displayable) { 
.... 
else if (displayable == form1) { 
    if (command == NEXT_COMMAND) { 
     form2_gauge.setValue(value); 
     display.setCurrent(form2); 
    } 
.... 
} 
.... 

Однако это не работает, как я ожидал. Сначала это ничего не меняет. С другой стороны, если я вернусь с form2 до form1, а затем снова с form1 до form2 это сработает.

Я не могу понять это сам. Я был бы чрезвычайно благодарен за любую возможную помощь.

Спасибо!

ответ

1

Возможно, мне не удалось найти здесь form2.gauge. Вы должны сохранить Gauge объект вроде этого:

Gauge form2_gauge([...]); 
form2.append(form2_gauge); 

Тогда ваш код будет:

[...] 
    form2_gauge.setValue(value); 
    display.setCurrent(form2); 
[...] 

Вы пробовали другую последовательность? Как это:
display.setCurrent(form2);
form2_gauge.setValue(value);
Я не думаю, что это изменило бы ничего, но может заставить его работать.

+0

У вас острый глаз! Извините, моя вина. Но дело не только в коде. –

+0

Обновлено с предложением. –

+0

Ну, я конечно * не имею *! Он * сделал * трюк. Но представить себе не могу. Большое спасибо! –

Смежные вопросы