如何在java中重置计时器? private void btnGuess1ActionPerformed(java.awt.event.ActionEvent evt){ 定时器=新定时器(); TimerTask任务=新的TimerTask(){ 私有整数i=0; 公开募捐{ 如果(i

如何在java中重置计时器? private void btnGuess1ActionPerformed(java.awt.event.ActionEvent evt){ 定时器=新定时器(); TimerTask任务=新的TimerTask(){ 私有整数i=0; 公开募捐{ 如果(i,java,timer,timertask,netbeans-8,Java,Timer,Timertask,Netbeans 8,使timer成为类的成员,并在构造函数中创建它。您应该在计划新任务之前取消计时器。类似于以下内容: private void btnGuess1ActionPerformed(java.awt.event.ActionEvent evt) { Timer timer = new Timer(); TimerTask task = new TimerTask(){ private int i = 0; public void run(){

使
timer
成为类的成员,并在构造函数中创建它。您应该在计划新任务之前取消计时器。类似于以下内容:

private void btnGuess1ActionPerformed(java.awt.event.ActionEvent evt) {    
    Timer timer = new Timer();
    TimerTask task = new TimerTask(){
        private int i = 0;
        public void run(){
            if (i <= 20){
                lblTimer.setText("" + i++);
            }
        }
    };
    timer.cancel();
    timer.purge();
    timer = new Timer();
    timer.schedule(task, 1000);
private void btnGuess1ActionPerformed(java.awt.event.ActionEvent evt){
timer.cancel();
TimerTask任务=新的TimerTask(){
私有整数i=0;
公开募捐{

如果(我知道你期望什么?什么时候应该重置?当我点击一个按钮时,计时器应该回到0,然后再开始计数到20。所以你必须绑定并点击按钮,在代码中你需要重置代码。你在看这种解决方案吗?@Danyalsandelo编辑代码。我看了网上,人们说要重置它,请取消并清除它,然后创建一个新计时器并使用timer.schedule(任务,1000);若要重新启动它,但它没有重置:/I我在执行此操作时收到一个错误,表示计时器已被取消,但创建了一个新的计时器对象。请查看修改后的代码。在取消之前检查
Timer==null
,并从构造函数中删除计时器创建。现在计时器停留在0。您应该使用
scheduleAtFixedRate
而不是n
schedule
。看看java文档。哦,好吧,它又开始工作了,刚才好像前面的计时器没有停止。所以现在有两个计时器在运行,所以标签可以有一个计时器打开,它会设置文本,然后第二个计时器也会同时设置文本。
 private void btnGuess1ActionPerformed(java.awt.event.ActionEvent evt) {    
    timer.cancel();
    TimerTask task = new TimerTask(){
       private int i = 0;
       public void run(){
       if (i <= 20){
         lblTimer.setText("" + i++);
      }
    }
};
timer = new Timer();
timer.scheduleAtFixedRate(task, 0, 1000);