You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Java JFrame开发中如何正确重启Timer计时器

问题原因

你在重置按钮的jButton7ActionPerformed方法中重新声明了局部变量i,根据Java的变量遮蔽规则,方法内的同名局部变量优先级高于类成员变量,你赋值的只是方法执行结束就会销毁的局部变量,Timer逻辑中实际使用的类成员i的值并没有被修改,因此无法实现重置效果。

解决步骤

  • 去掉重置方法内的int变量声明,直接为类成员变量i赋值25
  • 先更新UI显示,避免旧值残留
  • 调用Timer的restart()方法重置计时周期,避免出现首次跳秒异常

修正后的代码

private void jButton7ActionPerformed(java.awt.event.ActionEvent evt) {
    // 直接修改类成员变量i,不要加int声明
    i = 25;
    // 立即刷新倒计时显示
    shotclock.setText(String.valueOf(i));
    // 重启计时器
    T.restart();
}

内容的提问来源于stack exchange,提问作者bjhayeyy

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.06 17:18:03