2301_79472523 2024-04-29 18:42 采纳率: 0%
浏览 9

(javaFX)如何在scrollpane里添加空白处点击事件

定义一个scrollpane 里面放gridpane gridpane里放stackpane 现在需要点击除stackpane以外的空白处就行操作 但是无论在哪个pane里添加事件 点空白处都没有反应 界面如下

img

  • 写回答

5条回答 默认 最新

  • 码农阿豪@新空间 新星创作者: 前端开发技术领域 2024-04-29 18:43
    关注
    让阿豪来帮你解答,本回答参考chatgpt3.5编写提供,如果还有疑问可以评论或留言
    问题分析: 要在GridPane中的StackPane以外的空白区域添加单击事件,需要对ScrollPane,GridPane,以及StackPane都添加事件监听器,并且在事件中检查点击的位置是否在StackPane以外的区域。 解决方案:
    1. 给ScrollPane添加鼠标点击事件监听器。
    2. 在事件中获取鼠标点击的位置坐标。
    3. 判断点击的位置是否在StackPane以外的区域。
    4. 如果是,执行需要的操作。 代码实现:
    ScrollPane scrollPane = new ScrollPane();
    GridPane gridPane = new GridPane();
    StackPane stackPane = new StackPane();
    // 设置GridPane和StackPane的属性和子节点
    ...
    // 在ScrollPane中添加GridPane
    scrollPane.setContent(gridPane);
    // 给ScrollPane添加鼠标点击事件监听器
    scrollPane.setOnMouseClicked(new EventHandler<MouseEvent>() {
        @Override
        public void handle(MouseEvent event) {
            double mouseX = event.getX();
            double mouseY = event.getY();
            Bounds stackBounds = stackPane.getBoundsInParent();
            if (!stackBounds.contains(mouseX, mouseY)) {
                // 在StackPane以外的区域点击了鼠标
                // 执行需要的操作
                ...
            }
        }
    });
    

    这样就可以在GridPane中的StackPane以外的区域添加鼠标单击事件了。

    评论

报告相同问题?

问题事件

  • 创建了问题 4月29日