Подскажите пожалуйста как можно сделать так, чтоб таймер обновлял сам себя? Я вот написал небольшой класик, в котором таймер вставляется в JLabel и обновляется каждую секунду. Мне же нужно создавать такие таймеры из разных компонентов. В принципе так как я сделал не оч красиво, так как придется писать много кода и в таймер передавать ссылку на объект на котором метка.
Мне же нужно, чтоб я сделал например new ChessTimer и он сам бы себя обновлял.
Спасибо!
Вот класс
| Код |
package chess.util;
import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.text.NumberFormat;
import javax.swing.Timer;
import chess.local.ChessGUILocal_View; import chess.network.ChessGUINetwork;
public class ChessTimer {
private int miliseconds = 3590000; private NumberFormat format; private boolean isActive;
private Timer chessTimer;
private ChessGUILocal_View chessGUILocal; private ChessGUINetwork chessGUINetwork;
public ChessTimer(ChessGUILocal_View chessGUILocal) { this.chessGUILocal = chessGUILocal; }
public ChessTimer(ChessGUINetwork chessGUINetwork) { this.chessGUINetwork = chessGUINetwork; } public ChessTimer() { // TODO Auto-generated constructor stub }
public void timerStart() { this.isActive = true; ActionListener taskPerformer = new ActionListener() {
@Override public void actionPerformed(ActionEvent e) { if (chessGUILocal != null) { chessGUILocal.getChessTotalTimerLabel().setText( ((miliseconds / 3600000) + ":" + ((miliseconds % 3600000) / 60000) + ":" + ((miliseconds % 60000) / 1000))); miliseconds += 1000; } else { // TODO ChessGUINetwork parametr } } }; chessTimer = new Timer(1000, taskPerformer); chessTimer.start(); }
public void timerStop() { this.isActive = false; chessTimer.stop(); }
public boolean isActive() { return isActive; }
}
|
|