所以我有一个创建按钮的方法。我希望每120(2分钟)秒激活该按钮。单击按钮后,计时器将重置。
addButton( new RedButton(TXT_SATURNUP) {
@Override
public void onClick() {
Game.instance.showAd();
Game.instance.wasAnswerCorrect();
}
});
如果可能的话,我也希望能够收到日志消息。说...
if ( timerFinished ) {
// log message to screen informing user
} else {
// Button cannot be clicked at this time
}
答案 0 :(得分:0)
您可以使用Timer
。您必须使用启用按钮的ActionListener
进行设置,然后按下按钮将需要重置计时器。
鉴于互连,我将使用下面的模板创建一个新的按钮类:
class TimedButton extends JButton implements ActionListener {
private Timer T;
// Override constructors to set up timer
// and disable button (if/as desired)
public void onClick(){
super.onClick();
setEnabled(false);
T.restart();
}
public void actionPerformed(ActionEvent e){
setEnabled(true);
}
}
然后你需要一种方法来从外部启动定时器,或者在内部启动定时器的方法。您可能希望避免在构造函数中执行此操作,因为在使按钮可见之前计时器可能会用完。这一切只取决于按钮何时首次可用。
对于日志记录,您可以在上述方法中添加或使用isEnabled()
。