是否可以将MouseMotionListener添加到BufferedImage?

时间:2013-08-22 10:34:15

标签: java image swing jlabel mousemotionevent

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

图像存储在JLabel中。

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

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

对于我添加MouseMotionListener的任何组件,它不允许我选择图像的边。 双面是指缩放图像的所有方向。

窗口:

        addMouseListener(handler);
        addMouseMotionListener(handler);

JLabel:

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

此处MouseHandler是为mousePressedmouseDraggedmouseMove等各种操作定义的类。

知道为什么会这样吗?

1 个答案:

答案 0 :(得分:1)

BufferedImage是一个支持一般图像处理的类。它可以平等地用于具有图形用户界面的交互式程序,以及没有用户界面的非交互式批处理程序。对GUI中未使用的内容进行鼠标监听是没有意义的,因此您无法将MouseMotionListener添加到BufferedImage

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