我正在开发一个在Jpanel中拖动和缩放图像的应用程序。
图像存储在JLabel中。
但是当我将MouseMotionListener添加到面板时,整个窗口都在拖动,当我尝试添加MouseMotionListener时,我无法选择图像的边来缩放它。
我可以直接将MouseMotionListener添加到BufferedImage吗?
对于我添加MouseMotionListener的任何组件,它不允许我选择图像的边。 双面是指缩放图像的所有方向。
窗口:
addMouseListener(handler);
addMouseMotionListener(handler);
JLabel:
label.addMouseListener(new MouseHandler());
label.addMouseMotionListener(new MouseHandler());
此处MouseHandler
是为mousePressed
,mouseDragged
,mouseMove
等各种操作定义的类。
知道为什么会这样吗?
答案 0 :(得分:1)
BufferedImage
是一个支持一般图像处理的类。它可以平等地用于具有图形用户界面的交互式程序,以及没有用户界面的非交互式批处理程序。对GUI中未使用的内容进行鼠标监听是没有意义的,因此您无法将MouseMotionListener
添加到BufferedImage
。
您应该将侦听器添加到显示图像的GUI组件中。