【发布时间】:2022-11-13 08:09:27
【问题描述】:
我正在尝试从 jtextfield 获取整数输入,并将其设置为单击 jbutton 时计时器 jlabel 的整数,但我在 MouseEvent 方法中不断收到此错误
从内部类引用的局部变量必须是最终的或有效的最终的
代码:
private void timerStartMouseClicked(java.awt.event.MouseEvent evt) { int a = Integer.parseInt(timerInput.getText()); Timer timer = new Timer(); TimerTask task = new TimerTask() { public void run() { timeLeft.setText(Integer.toString(a)); --a; if (a == -1){ \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ timer.cancel(); } else if(isRunning){ \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ } } }; timer.scheduleAtFixedRate(task, 1000, 1000); }我仍然是定时器事件和鼠标事件的新手,我试图将
a声明为全局变量,除非我在方法中声明它是一个值,否则它仍然给我同样的错误,但我需要从 jtextfield 获取输入。
【问题讨论】:
-
简短的回答是您必须将
a设为最终版本。更长的答案是您不能这样做,因此您需要在匿名类中添加一个变量。
标签: java netbeans mouseevent timertask