2013-08-22 131 views
1

我正在开发一个在Jpanel中拖动和缩放图像的应用程序。是否可以将MouseMotionListener添加到BufferedImage?

图像存储在JLabel中。

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

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

使用任何组件添加MouseMotionListener,它不允许我选择图像的边。 双方意味着所有的方向来缩放图像。

窗口:

 addMouseListener(handler); 
     addMouseMotionListener(handler); 

的JLabel:

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

这里MouseHandler就像mousePressedmouseDraggedmouseMove各种操作定义的类等

任何想法,为什么它是表现如此?

+1

为什么不把MouseMotionListener放在JLabel上? – Gerret

+0

@Gerret - 我已经将它添加到JLabel中,但它不起作用,因为当我试图选择图像的任何角落或方向时,它将不起作用,因为我已将它应用于JLabel和Jlabel中,所以在JPanel中协调JLabel是我不知道的。 –

+0

将图像直接放在面板上怎么样... – Gerret

回答

1

BufferedImage是一个支持一般图像处理的类。它可以从具有图形用户界面的交互式程序和不具有用户界面的非交互式批处理程序中平等地使用。在GUI中没有使用的鼠标监听器没有任何意义,因此您不能将MouseMotionListener添加到BufferedImage

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

相关问题