【发布时间】:2013-08-22 19:03:22
【问题描述】:
我正在开发一个在 Jpanel 中拖动和缩放图像的应用程序。
图像存储在 JLabel 中。
但是当我将 MouseMotionListener 添加到面板时,整个窗口都在拖动,当我尝试添加 MouseMotionListener 时,我无法选择图像的侧面来缩放它。
那么我可以直接将 MouseMotionListener 添加到 BufferedImage 吗?
对于我添加 MouseMotionListener 的任何组件,它不允许我选择图像的侧面。 边表示缩放图像的所有方向。
窗口:
addMouseListener(handler);
addMouseMotionListener(handler);
J标签:
label.addMouseListener(new MouseHandler());
label.addMouseMotionListener(new MouseHandler());
这里MouseHandler是为mousePressed、mouseDragged、mouseMove等各种操作定义的类。
知道为什么会这样吗?
【问题讨论】:
-
为什么不把 MouseMotionListener 放在 JLabel 上?
-
@Gerret - 我已将它添加到 JLabel 但它不起作用,因为当我尝试选择图像的任何角落或方向时它不起作用,因为我已将它应用于 JLabel 和 Jlabel 到 JPanel所以我不知道JLabel的坐标在哪里。
-
将图像直接放在面板上怎么样...
-
而另一个问题实际上是足以以图形方式调整图片大小的地方。如果您只使用输入字段怎么办?并在Label处显示比调整大小的图片?
-
@Gerret - 当我尝试将图像直接添加到 JPanel 时,它向我显示一个错误。我写了代码:
JPanel j; j.add(a);这里是 BufferedImage 的实例。它显示错误应该是组件或添加方法将组件作为参数。
标签: java image swing jlabel mousemotionevent