我一直在尝试将一个mouseListener添加到我在paintComponent中绘制的图像,但它似乎不起作用。我试图使它成为一个JLabel并添加mouseListener,但它也不起作用。我能找到的唯一解决方案是将mouseListener添加到paintComponent类本身,我在那里绘制了几个图像,单击每个图像时都会触发mousePressed事件。 我尝试在不同的JPanel中绘制每个图像,然后将它们添加到JFrame中的JPanel,但它们互相覆盖。 以下是3张图片中的一张以及我如何使用它们的示例:
ImageIcon emirates = new ImageIcon("UAE.png");
Image uae = emirates.getImage();
这是我的paintComponent类,它是在JFrame类中使用的no-arg中实现的。
class Map extends JPanel{
int x = getWidth()/2;
int y = getHeight()/2;
@Override
protected void paintComponent(Graphics g){
super.paintComponent(g);
g.drawImage(uae,(x+480), (y+265),100,100,this);
g.drawImage(bhr, (x+420), (y+240),50,50,this);
g.drawImage(kwt,(x+350), (y+150),80,80,this);
}
}
如您所见,我有多张地图可供绘制。但是我只能给整个班级一个mouseListener。我该怎么办?