2015-07-08 4 views
1

Есть ли способ добавить MouseListener к изображению? Я посмотрел на вопрос this StackOverflow, но на самом деле он не ответил, как это сделать для java.awt.Image, так как нет класса Graphics2D Image. Или, по крайней мере, один, который я нашел.Добавить MouseListener в java.awt.Image


EDIT:

Чтобы уточнить, позвольте мне объяснить:

С Ellipse2D, я могу сказать:

if(ellipse2D.contains(mouseX, mouseY) { 
    ...do something 
} 

Возможно ли это с java.awt.Image (т.е. image.contains())

Кроме того, это то, как изображение будет добавлено в JPanel:

Image image = item.getIcon().getImage(); //item.getIcon() returns a javax.swing.ImageIcon 
g.drawImage(image, imageX, imageY, null); 
+0

Вы должны иметь этот контейнер изображение отображается, а затем добавляет прослушиватель. – Krease

+0

На самом деле это немного сложнее. Программа использует цикл for и добавляет несколько изображений, и мне нужен простой способ программно найти, если вы нажали на изображение. Я точно не знаю, где будет размещаться изображение. –

ответ

2

Вы можете просто поместить изображение в JLabel и добавить слушателя в JLabel

ImageIcon image = item.getIcon(); 
JLabel labelWithImage = new JLabel(image); 
labelWithImage.addMouseListener(new MouseAdapter() { 
    @Override 
    public void mouseEntered(MouseEvent e) { 
     System.out.println("Mouse Entered Over Image"); 
    } 
}); 
panel.add(labelWithImage); 
+1

Но почему? Он мог просто сделать это, и все будет работать. Я понимаю, что это то, что он делает прямо сейчас, но это решение его проблемы. – JDrost1818

+0

Это самый простой способ сделать это. –