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

标签 java javafx mouseevent listener mouselistener

我在 Javafx 中有一个 Pane ,它希望在鼠标进入其边界时进行动画处理,并且我希望动画在鼠标离开该 Pane 后停止。我知道这需要一个监听器,但我找到的所有答案似乎都只与 java.awt 有关

最佳答案

您可以使用方法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
    }
}

关于JavaFX - 如何检查鼠标是否已进入和/或退出 Pane ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55211353/

相关文章:

java - 黑莓对话框

java - 使用 Spring Data Rest 为 Controller 和存储库提供相同的 url 映射

macos - 自定义 NSStatusItem 和 NSView 无法可靠地接收 NSTrackingEvents

java - Java Swing 中的 MouseListener 有时不响应

java - 布局 - 图像不在底部且重叠

java - 找不到合适的驱动程序 Postgres JDBC

java - 如何在 JavaFX 中将 (0,0) 处的水平线和垂直线颜色加深

java - 如何双向绑定(bind)到设置为 TableView 的所选项目属性的对象的属性?

java - 桌面应用程序上的一次性 Java 配置文件

javascript - 为什么 mouseup 事件不能阻止点击事件