java - 是否可以将 MouseMotionListener 添加到 BufferedImage 中?

标签 java image swing jlabel mousemotionevent

我正在开发一个在 Jpanel 中拖动和缩放图像的应用程序。

图像存储在 JLabel 内。

但是当我将 MouseMotionListener 添加到面板时,整个窗口都会被拖动,并且当我尝试添加 MouseMotionListener 时,我无法选择图像的侧面来缩放它。

那么我可以直接将MouseMotionListener添加到BufferedImage吗?

对于我添加 MouseMotionListener 的任何组件,它都不允许我选择图像的侧面。 sides 表示缩放图像的所有方向。

窗口:

        addMouseListener(handler);
        addMouseMotionListener(handler);

J标签:

        label.addMouseListener(new MouseHandler());
        label.addMouseMotionListener(new MouseHandler());

这里的MouseHandler是为各种操作定义的类,例如mousePressedmouseDraggedmouseMove等。

知道为什么会这样吗?

最佳答案

BufferedImage是一个支持一般图像操作的类。它同样可以在具有图形用户界面的交互式程序中使用,也可以在没有用户界面的非交互式批处理程序中使用。在 GUI 中未使用的对象上设置鼠标监听器是没有意义的,因此您无法将 MouseMotionListener 添加到 BufferedImage

您应该将监听器添加到显示图像的 GUI 组件中。

关于java - 是否可以将 MouseMotionListener 添加到 BufferedImage 中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18378059/

相关文章:

java - applicationContext.xml 不读取 servletContext.contextPath

java - 如何将 TimePicker 时间添加到 BroadCast Receiver 待处理 Intent ?

python - 使用 python 模块 image 去除图像中的红色的函数

java - Processbuilder-在linux中打开java脚本

java - 无法在针对 java 8 的 java 9 下构建 javafx 应用程序

iphone - 从磁盘加载图像时的 ScrollView 和表格 View 性能

c# - 查找 RichTextBox 中的所有图像

java - 将 JButton 数组添加到 JPanel(按钮不可见)

java - 如何从一个 jframe 访问另一个 jframe 的 arraylist

java - 为什么 JTextArea 可以滚动,但不能滚动?