Я хочу, чтобы часы показывали текущее время и обновлялись каждую секунду. Я использую следующий код:
int timeDelay = 1000;
ActionListener time;
time = new ActionListener() {
@Override
public void actionPerformed(ActionEvent evt) {
timeLabel.setText(DateTimeUtil.getTime());
/*timeLabel is a JLabel to display time,
getTime() is samll static methos to return formatted String of current time */
}
};
SwingWorker timeWorker = new SwingWorker() {
@Override
protected Object doInBackground() throws Exception {
new Timer(timeDelay, time).start();
return null;
}
};
timeWorker.execute();
Я хочу обновить текст timeLabel
в другом потоке, отличном от EDT.
Я делаю это правильно? Любой другой лучший способ?
Также для информации я добавил timeLabel
врасширенную
JPanel
, которая содержит несколько подобных утилит и вызывается в другомMain
JFrame
.