0

我的代码的主要部分是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. 从那以后,如上所述,我将Timerand TimerTasktoprojectScrollPane和控制代码行移至。presentation

有什么想法吗?希望这已经足够清楚了!

提前致谢!

编辑 - 解决方案:

我在其中创建了一个projectsScrollPane更新的方法task,现在它工作正常。可能我一开始应该怎么做,而不是把所有事情都公开。

public void createTimer(){
    task = new velocityCalc();
}
4

0 回答 0