Ran*_*pto 1 javafx cursor fadeout javafx-8
在我的应用程序(媒体播放器)上,当应用程序处于全屏模式时,我正在淡出顶部栏和底栏.我也想在延迟几秒后淡出光标.我试过FadeTransition,但它只Node作为参数.
我也试过使用线程.
Platform.runLater(new Runnable()
{
@Override
public void run()
{
try
{
Thread.sleep(2000);
scene.setCursor(Cursor.NONE);
}
catch (InterruptedException e)
{
e.printStackTrace();
}
}
});
Run Code Online (Sandbox Code Playgroud)
在这里,我只想在延迟两秒后隐藏光标.它工作,但也挂了我的应用程序两秒钟,我不指望.
以两种方式延迟后,我可以通过哪种方式淡出光标?
您的代码正在使UI挂起,因为您Thread.sleep(...)在FX应用程序线程上进行了阻塞调用().如果你想这样做,你应该阻止后台线程,并在暂停完成时安排FX应用程序线程上光标的更改.
但是,更简单的方法就是使用PauseTransition:
PauseTransition pause = new PauseTransition(Duration.seconds(2));
pause.setOnFinished(e -> scene.setCursor(Cursor.NONE));
pause.play();
Run Code Online (Sandbox Code Playgroud)
您也可以使用它来在用户执行某些操作时重新显示光标,并在2秒后再次消失:
scene.addEventHandler(MouseEvent.ANY, e -> {
scene.setCursor(Cursor.DEFAULT);
pause.playFromStart();
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
143 次 |
| 最近记录: |