So greife ich in meinem mouseDragged-Ereignis auf ImageIcons zu

Ich versuche herauszufinden, wie ich in meinen Events auf meine verschiedenen mit paintComponent gezeichneten Bilder zugreifen kann (die Verwendung von JLabels ist in der Zuweisung nicht zulässig).

Beim Ziehen möchte ich, dass sich nur ein Bild mit der Maus bewegt und ich kann mit e.getSource () nicht auf das "aktuelle Bild" zugreifen.

MypaintComponent verschiebt alle (3) Bilder gleichzeitig.

Meine Frage ist: Wie komme ich mit meinem mouseDragged an ein einzelnes ImageIcon?

public class PhotoPanel extends JPanel implements MouseListener, MouseMotionListener {

private java.util.List<ImageIcon> myList = new ArrayList<>();
private int mx, my;

private ImageIcon image1 = new ImageIcon("src/resources/gira.gif");
private ImageIcon image2 = new ImageIcon("src/resources/stru.gif");
private ImageIcon image3 = new ImageIcon("src/resources/back.gif"); 

public PhotoPanel()
{
    setBackground(Color.GREEN);

    myList.add(image1);
    myList.add(image2);
    myList.add(image3);

    //Is this a problematic way of doin it?
    addMouseMotionListener(this);

}

public void paintComponent (Graphics g) {

    super.paintComponent(g);

    for (ImageIcon i : myList)
    {
       g.drawImage(i.getImage(), mx, my, this);
    }    
}


@Override
public void mouseDragged(MouseEvent e) {

    //if(e.getSource == image1)
    //{
    //    Manipulate single picture, but not working this way  
    //}
    mx = e.getX();
    my = e.getY();

    repaint();
    }    
}

Antworten auf die Frage(6)

Ihre Antwort auf die Frage