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
相关产品推荐
相关产品推荐

