1

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

图像存储在 JLabel 中。

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

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

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

窗户 :

        addMouseListener(handler);
        addMouseMotionListener(handler);

J标签:

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

MouseHandler是为各种操作定义的类,如mousePressed, mouseDragged,mouseMove等。

知道为什么会这样吗?

4

1 回答 1

1

BufferedImage是一个支持一般图像处理的类。它同样可以用于具有图形用户界面的交互式程序,也可以用于没有用户界面的非交互式批处理程序。在 GUI 中未使用的东西上设置鼠标侦听器是没有意义的,因此您不能将 a 添加MouseMotionListenerBufferedImage.

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

于 2013-08-22T11:03:22.153 回答