我正在开发一个在 Jpanel 中拖动和缩放图像的应用程序。
图像存储在 JLabel 内。
但是当我将 MouseMotionListener 添加到面板时,整个窗口都会被拖动,并且当我尝试添加 MouseMotionListener 时,我无法选择图像的侧面来缩放它。
那么我可以直接将MouseMotionListener添加到BufferedImage吗?
对于我添加 MouseMotionListener 的任何组件,它都不允许我选择图像的侧面。 sides 表示缩放图像的所有方向。
窗口:
addMouseListener(handler);
addMouseMotionListener(handler);
J标签:
label.addMouseListener(new MouseHandler());
label.addMouseMotionListener(new MouseHandler());
这里的MouseHandler
是为各种操作定义的类,例如mousePressed
、mouseDragged
、mouseMove
等。
知道为什么会这样吗?
最佳答案
BufferedImage是一个支持一般图像操作的类。它同样可以在具有图形用户界面的交互式程序中使用,也可以在没有用户界面的非交互式批处理程序中使用。在 GUI 中未使用的对象上设置鼠标监听器是没有意义的,因此您无法将 MouseMotionListener
添加到 BufferedImage
。
您应该将监听器添加到显示图像的 GUI 组件中。
关于java - 是否可以将 MouseMotionListener 添加到 BufferedImage 中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18378059/