我的代码的主要部分是presentationController
(扩展 JFrame)。在其中,我创建了一个类型的对象
scrollPane = projectsScrollPane();
(扩展 JScrollPane)。
我还创建了一个类型的对象presentation
。
对象scrollPane
有
Timer timer = new Timer();
TimerTask task = new velocityCalc();
其中velocityCalc写为
public class velocityCalc extends TimerTask {... do stuff ...}
在presentation
对象内,我取消了所述计时器,稍后想更新它,但无法这样做。
取消看起来像:
presentationController.scrollPane.task.cancel;
按预期工作。创建新任务如下所示:
presentationController.scrollPane.task = new presentationController.scrollPane.velocityCalc();
presentationController.scrollPane.timer.scheduleAtFixedRate(presentationController.scrollPane.task, 0, 30);
但是第一行中等号之后的部分用红色下划线(错误),并要求我
"Create class 'velocityCalc' in package 'presentationController.scrollPane'"
这两行代码在 mouseListener (mouseReleased) 中。
这段代码以前可以完美运行,但那时所有代码都包含在presentationController
. 从那以后,如上所述,我将Timer
and TimerTask
toprojectScrollPane
和控制代码行移至。presentation
有什么想法吗?希望这已经足够清楚了!
提前致谢!
编辑 - 解决方案:
我在其中创建了一个projectsScrollPane
更新的方法task
,现在它工作正常。可能我一开始应该怎么做,而不是把所有事情都公开。
public void createTimer(){
task = new velocityCalc();
}