JavaFX:获取在 ImageView 上单击的 x 和 y 像素坐标

标签 java javafx

我在 ScrollPane 中有一个 ImageView。我可以通过向 ScrollPane 添加一个监听器来获取鼠标单击事件。但是,我想获取被点击图像上像素的 x 和 y 坐标。

为了使它变得更加复杂,可以放大和缩小图像,但一旦我对我正在做的事情有所了解,我可能就能弄明白。

最佳答案

将鼠标监听器添加到 ImageView 而不是 ScrollPane

这是一个简单的例子:

import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.control.ScrollPane;
import javafx.scene.image.ImageView;
import javafx.stage.Stage;

public class ClickOnScrollingImage extends Application {

    private static final String IMAGE_URL = "https://www.nasa.gov/sites/default/files/styles/full_width_feature/public/thumbnails/image/crop_p_color2_enhanced_release_small.png?itok=5BtHNey_" ;


    @Override
    public void start(Stage primaryStage) {
        ScrollPane scroller = new ScrollPane();
        ImageView imageView = new ImageView(IMAGE_URL);
        scroller.setContent(imageView);

        // the following line allows detection of clicks on transparent
        // parts of the image:
        imageView.setPickOnBounds(true);

        imageView.setOnMouseClicked(e -> {
            System.out.println("["+e.getX()+", "+e.getY()+"]");
        });
        Scene scene = new Scene(scroller, 600, 600);
        primaryStage.setScene(scene);
        primaryStage.show();
    }

    public static void main(String[] args) {
        launch(args);
    }
}

关于JavaFX:获取在 ImageView 上单击的 x 和 y 像素坐标,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36294985/

相关文章:

java - Apache cxf - jaxrs 客户端 spring 配置(注入(inject)代理)

java - 扁平化多维 HashMap 以获得更好的性能?

java - 在 Java/JavaFX 中处理这些事件的最佳方法

java - 触发事件时自发的 NullPointerExceptions

java - 从字符串中读取字节数组并创建图像

java - 如何使用 PowerMockito 模拟 protected 静态内部类

java - Jenkins 升级问题

java - 如何从 FileDescriptor 创建文件?

JavaFX 显示文本区域附加 - 有什么方法可以突出显示/使新文本更明显?

java - en_EN 是有效的语言环境吗