私のコードの主要なチャンクは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'"
2 行のコードは、mouseListener (mouseReleased) 内にあります。
このコードは以前は完全に機能していましたが、そのときはすべてのコードが に含まれていpresentationController
ました。それ以来、上記のようにTimer
andTimerTask
を に移動しprojectScrollPane
、コードの制御行を に移動しましたpresentation
。
何かご意見は?うまくいけば、これは十分に明確です!
前もって感謝します!
編集 - 解決策:
projectsScrollPane
を更新するメソッドを作成しましたが、task
正常に動作するようになりました。おそらく、すべてを公開するのではなく、そもそもどのように行うべきだったのでしょう。
public void createTimer(){
task = new velocityCalc();
}