JavaFX-如何检查鼠标是否已进入和/或退出窗格?

Ale*_*exT 1 java javafx listener mouseevent mouselistener

我在Javafx中有一个窗格,希望在鼠标进入边界时进行动画处理,并且希望动画一旦鼠标退出窗格就停止播放。我知道这需要一个侦听器,但是我发现的所有答案似乎都只涉及到java.awt

Sam*_*ipp 5

您可以使用方法Node.setOnMouseEntered()Node.setOnMouseExited()注册事件处理程序,以启动或停止动画。这是一个简单的示例:

public class MainTest extends Application {
    public void start(Stage primaryStage) {
        Pane pane = new Pane();
        pane.setStyle("-fx-background-color: #ff0000");
        pane.setLayoutX(100);
        pane.setLayoutY(100);
        pane.setPrefSize(300,300);
        pane.setOnMouseEntered(event -> startAnimation());
        pane.setOnMouseExited(event -> stopAnimation());

        Scene scene = new Scene(new Pane(pane), 500, 500);
        primaryStage.setScene(scene);
        primaryStage.show();
    }

    private void stopAnimation() {
        System.out.println("stop");
        // do whatever you need to start your animation
    }

    private void startAnimation() {
        System.out.println("start");
        // do whatever you need to stop your animation
    }
}
Run Code Online (Sandbox Code Playgroud)