Как изменить текст JLabel в цикле while - PullRequest
0 голосов
/ 04 сентября 2011

Я хочу сделать часы, которые изменяют текст JLabel, и у меня возникают проблемы с изменением текста.

Спасибо, Обьедог !!!!

Вот мой код для часов, если это поможет

Ответы [ 2 ]

1 голос
/ 04 сентября 2011

Глядя на Javadoc может помочь вам.

JLabel.setText ().

0 голосов
/ 28 июня 2012

Похоже, ваш код не попал в пост, но у меня такое чувство, что я знаю, что не так, когда вы сформулировали свой вопрос: -)

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

Если вы используете простой цикл while, чтобы действовать как задержка часов, вы свяжете EDT (поток диспетчеризации событий), так что у Swing никогда не будет возможности перекрасить ваш экран! Вы можете даже заметить, что перетаскивание окна за пределы экрана может полностью его убрать.

Решением является использование механизма задержки, который работает в системе событий. К счастью, такая вещь существует! Взгляните на javax.swing.Timer (примечание: есть другие классы, называемые Timer, но это единственный, который работает в системе событий). Вызывая setText для вашего JLabel (и, возможно, перерисовывая) в actionListener of этот таймер, вы можете получить поведение, похожее на часы.

...