2013-08-22 135 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組件中。

相關問題