【问题标题】:Is it possible to add MouseMotionListener to BufferedImage?是否可以将 MouseMotionListener 添加到 BufferedImage?
【发布时间】: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是为mousePressedmouseDraggedmouseMove等各种操作定义的类。

知道为什么会这样吗?

【问题讨论】:

  • 为什么不把 MouseMotionListener 放在 JLabel 上?
  • @Gerret - 我已将它添加到 JLabel 但它不起作用,因为当我尝试选择图像的任何角落或方向时它不起作用,因为我已将它应用于 JLabel 和 Jlabel 到 JPanel所以我不知道JLabel的坐标在哪里。
  • 将图像直接放在面板上怎么样...
  • 而另一个问题实际上是足以以图形方式调整图片大小的地方。如果您只使用输入字段怎么办?并在Label处显示比调整大小的图片?
  • @Gerret - 当我尝试将图像直接添加到 JPanel 时,它向我显示一个错误。我写了代码:JPanel j; j.add(a); 这里是 BufferedImage 的实例。它显示错误应该是组件或添加方法将组件作为参数。

标签: java image swing jlabel mousemotionevent


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-08-16
    • 1970-01-01
    • 1970-01-01
    • 2020-01-24
    • 2017-11-02
    • 2014-08-16
    相关资源
    最近更新 更多