ilovehouSe
Grünschnabel
Code:
public void picAdd(File picfile)
{
try
{
counter++;
if (counter == 3){ System.out.println("3Bilder hinzugefügt. Neue Seite erstellen"); }
image = ImageIO.read(picfile);
// beide Maus-Listener anhängen
Leinwand.addMouseListener(new ML());
Leinwand.addMouseMotionListener(new MML());
Picture.setIcon(new ImageIcon(image.getScaledInstance(image.getWidth(Picture)/2,image.getHeight(Picture)/2,Image.SCALE_FAST)));
Leinwand.add(Picture);
Leinwand.setPreferredSize(new Dimension(800,600));
this.validate();
}
catch (IOException e) {
e.printStackTrace();
}
}
public void actionPerformed(ActionEvent e)
{
if(e.getSource() == AnlegenEintrag){ AlbumAnlegen(); }
else if(e.getSource() == OeffnenEintrag){ AlbumOeffnen(); }
else if(e.getSource() == SpeichernEintrag){ AlbumSpeichern(); }
else if(e.getSource() == beendenEintrag){ beenden(); }
}
/** MouseListener */
class ML extends MouseAdapter
{
public void mousePressed(MouseEvent e)
{
if (! dragging && e.getButton() == MouseEvent.BUTTON1 && Picture.getBounds().contains(e.getPoint()))
{
dragging = true;
dx = e.getX() - Picture.getX();
dy = e.getY() - Picture.getY();
}
}
public void mouseReleased(MouseEvent e)
{
// interessiert nur, wenn linke Taste losgelassen wird
if (dragging && e.getButton() == MouseEvent.BUTTON1)
dragging = false;
}
}
/** MouseMotionListener */
class MML extends MouseMotionAdapter
{
public void mouseDragged(MouseEvent e)
{
// Bild neu positionieren, x- und y-Differenzen beibehalten
if (dragging)
Picture.setLocation(e.getX() - dx, e.getY() - dy);
}
}
habe folgenden code der den User ein Label (Picture) auf der Leinwand per Maus bewegen lässt. Mein Problem ist nun das ich mehrere Labels habe (eigentlich maximal 3) und alle diese Eigenschaft erhalten sollen, aber natürlich unabhängig voneinander. Wie genau muss das ganze dann aussehen?
MfG ilovehouSe