You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Javafx中如何实现点击Scene任意区域都在Pane内显示坐标

修改方案

你原来的代码只给Text组件绑定了点击事件,所以只有点击Text区域才会触发坐标更新,只要做两处调整即可实现需求:

  1. 将鼠标点击监听器绑定到Scene对象上,覆盖整个场景的点击事件
  2. 坐标获取改用getSceneX()/getSceneY(),拿到相对于整个场景的坐标值

修改后的完整代码如下:

@Override
public void start(Stage primaryStage) {
    Pane pane = new Pane();
    Text text = new Text(50, 50, "Hello");
    pane.getChildren().addAll(text);
    
    Scene scene = new Scene(pane, 300, 200);
    // 给整个场景绑定点击监听器
    scene.setOnMouseClicked(e -> {
        text.setText(e.getSceneX() + ", " + e.getSceneY());
    });
    
    primaryStage.setTitle("MouseClicker");
    primaryStage.setScene(scene);
    primaryStage.show();
}

如果需要展示坐标保留指定小数位数,也可以用String.format("%.1f, %.1f", e.getSceneX(), e.getSceneY())格式化输出内容。

内容的提问来源于stack exchange,提问作者Ovted Gaming

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.27 14:06:03