Stage存在,其中包含一些简单的节点,例如Circle布局中的Rectangle(RIGHT)和BordePane(LEFT)。


我想要的是,如果鼠标未移动1秒钟(在窗口中),圆消失了。
如果elememt在最后1秒钟内未输入Rectangle,则矩形消失。


我正在考虑使用Thread,但这似乎不正确。

有没有JavaFX软件包可以执行此操作?有些代码将不胜感激。

最佳答案

使用几个PauseTransition

PauseTransition hideCircle = new PauseTransition(Duration.seconds(1));
PauseTransition hideRectangle = new PauseTransition(Duration.seconds(1));

// restart hideCircle if mouse moves in window:
scene.addEventFilter(MouseEvent.MOUSE_MOVED, e -> hideCircle.playFromStart());

// restart hideRectangle if mouse enters rectangle:
rectangle.setOnMouseEntered(e -> hideRectangle.playFromStart());

// hide circle if pause gets to end:
hideCircle.setOnFinished(e -> circle.setVisible(false));

// hide rectangle if pause gets to end:
hideRectangle.setOnFinished(e -> rectangle.setVisible(false));

// start "timers":
hideCircle.play();
hideRectangle.play();


您可能更希望从其父级中删除形状,而不是将visible设置为false,具体取决于您要执行的操作。

07-24 21:01