Как реализовать таймер обратного отсчета в разгаре - PullRequest
1 голос
/ 26 августа 2011

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

1.I 'Я спрашиваю об этом, потому что знаю, что каждое обновление представления проходит через поток рассылки событий, но оно также может заморозить мою игру, если есть что-то, что работает там постоянно (например, таймер).

2. Аспект дизайна:Знаете ли вы несколько хороших способов показа таймера привлекательным и, возможно, анимированным способом?

Большое спасибо заранее

Ответы [ 2 ]

2 голосов
/ 26 августа 2011

Используйте класс javax.swing.Timer .Это будет запускать события действия с фиксированными интервалами, что предотвратит зависание графического интерфейса.

Что касается анимации, см. Учебник 2D Graphics .

0 голосов
/ 18 октября 2012
 int j=10; 
 final Timer t = new Timer(1000, new ActionListener() {
private long time = 10 * 1000; //10 seconds, for example

public void actionPerformed(ActionEvent e) {
    if (time > 0) {
        time -= 1000;
        j--;
         jLabel1.setText(Long.toString(j));

    }
}
});
t.start();
...