У меня есть JDialog
с JLabel
. Я хочу изменить значение метки каждые 10 секунд. Как перерисовать/перекрасить JDialog
с обновленным значением в JLabel
.Изменение значения jLabel в jDialog после его загрузки
ответ
Используйте Swing Timer, чтобы запланировать обновление этикетки. Тогда все, что вы делаете, это
label.setText(...);
и этикетка будет перекрашена автоматически. Нет необходимости вызывать repaint()
.
Возможно, проблема заключается в том, что вы пытаетесь запустить Timer
после отображения модального JDialog
. В этом случае код не будет выполняться до тех пор, пока диалог не будет закрыт. Поэтому вам нужно убедиться, что вы запустили Timer
перед использованием dialog.setVisible(true)
.
Если вам нужна дополнительная помощь, тогда разместите сообщение SSCCE, показывая проблему.
Вы можете использовать Timer и TimerTask планировать на каждые 10 секунд, в котором вы представить Text
значение, JLabel
«s. После этого вы должны обновить текущее окно с помощью метода repaint()
. Теперь вы получите значение JLabel
Text
...
Я уже закодировал вызов метода repaint. Но не получить вызов после того, как свойство setVisible установлено в true. – Joe
Если это так, попробуйте setVisible (false), установите значение then setVisible (true) ... Дайте ему попробовать ... – Venkat
Нет, он все еще показывает старое значение. – Joe
Если это так, попробуйте setVisible (false), установите значение then setVisible (true) ... Попробуйте ... – Venkat