私はjava.util.Timer
を使用してユーザーのマウスの動きを追跡しているJavaFXアプリケーションを開発しています。Java.uti.Timerを一時停止する方法?
概念は次のとおりです。マウスがシーン内で数秒間動かない場合、マウスが動くたびにボタンが見えなくなります。ボタンが再び表示されます。そして、ユーザーがボタンの上にカーソルを置くたびに、タイマーは停止されます。また、ボタンのタイマーが終了すると再び開始します。
これが今、私のコードは、いつでもアプリは起動しますが、私はアプリをリロードするコールバック関数最初は正常に動作します。これは、タイマー
public static void stopTimer(){
timer.cancel();
System.out.println("TIMER STOPED");
}
public void leftbuttonmovehandler(MouseEvent event){
if(event.getEventType()==MouseEvent.MOUSE_ENTERED){
System.out.println("MOUSE ENTERED");
Main.stopTimer();
}else if(event.getEventType()==MouseEvent.MOUSE_EXITED){
System.out.println("MOUSE EXITED");
Main.start();
}
}
を停止することです開始タイマー方法
public static void startTimer(){
timer = new Timer();
task = new TimerTask() {
@Override
public void run() {
if(detection>0){
Util_Class.getUi_obj().getLeftbuttongroup().setVisible(false);
Util_Class.getUi_obj().getRightbuttongroup().setVisible(false);
}else{
detection++;
}
}
};
timer.schedule(task, 2000, 2000);
System.out.println("TIMER STARTED");
//startTimer();
}
ですカーソルがボタンの上にあってもボタンは消えます。
誰かが私を助けてくれれば素晴らしいだろう。
を消費することによって
Scene
に達することから、イベントを防ぎます。代わりにその解決策を見たいですか? –もちろんあります。私はそれを見ています。 –
見つけようとしていただけです。カーソルを「NONE」に設定する[この質問](http://stackoverflow.com/questions/33066754/javafx-set-mouse-hidden-when-idle)を参照してください。ボタンの可視性を 'false'に等しく設定することができます。 –