2010-07-21 5 views
0

У меня есть JDialog с JLabel. Я хочу изменить значение метки каждые 10 секунд. Как перерисовать/перекрасить JDialog с обновленным значением в JLabel.Изменение значения jLabel в jDialog после его загрузки

+0

Если это так, попробуйте setVisible (false), установите значение then setVisible (true) ... Попробуйте ... – Venkat

ответ

1

Используйте Swing Timer, чтобы запланировать обновление этикетки. Тогда все, что вы делаете, это

label.setText(...); 

и этикетка будет перекрашена автоматически. Нет необходимости вызывать repaint().

Возможно, проблема заключается в том, что вы пытаетесь запустить Timer после отображения модального JDialog. В этом случае код не будет выполняться до тех пор, пока диалог не будет закрыт. Поэтому вам нужно убедиться, что вы запустили Timer перед использованием dialog.setVisible(true).

Если вам нужна дополнительная помощь, тогда разместите сообщение SSCCE, показывая проблему.

-1

Вы можете использовать Timer и TimerTask планировать на каждые 10 секунд, в котором вы представить Text значение, JLabel «s. После этого вы должны обновить текущее окно с помощью метода repaint(). Теперь вы получите значение JLabelText ...

+0

Я уже закодировал вызов метода repaint. Но не получить вызов после того, как свойство setVisible установлено в true. – Joe

+0

Если это так, попробуйте setVisible (false), установите значение then setVisible (true) ... Дайте ему попробовать ... – Venkat

+0

Нет, он все еще показывает старое значение. – Joe