Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/391.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在特定时间后使按钮可用?_Java - Fatal编程技术网

Java 在特定时间后使按钮可用?

Java 在特定时间后使按钮可用?,java,Java,所以我有一个方法来创建一个按钮。我希望该按钮每120(2分钟)秒激活一次。单击按钮后,计时器将重置 addButton( new RedButton(TXT_SATURNUP) { @Override public void onClick() { Game.instance.showAd(); Game.instance.wasAnswerCorrect();

所以我有一个方法来创建一个按钮。我希望该按钮每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
}
你可以用一个。您必须使用启用按钮的
ActionListener
来设置它,并且您的按钮单击必须重置计时器

鉴于互连,我将使用以下模板创建一个新的button类:

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()

我想使用一些jQuery或JavaScript。我的RedButton类中是否有新的计时器类?我会在设置按钮的类中实现它吗?如果RedButton是您编写并扩展现有按钮的类,那么是的,您可以将计时器和方法放在该类中。另一方面,您的匿名类重写
onClick()
,从而隐藏新的
onClick()
方法,因此,如果继续使用该覆盖,则必须调用
super.onClick()
。我希望这是清楚的。