Z
Zugzwang
Gast
Guten Abend,
ich würde gerne ein Bild auf einem JPanel verschieben. Das habe ich auch geschafft, nur springt das Bild immer zum Mauszeiger wenn ich das Bild verschieben möchte. Nur würde ich gerne das Bild frei verschieben können, ohne das es springt. Was muss ich machen, dass das klappt?
Vielleicht kann mir ja jemand helfen.
Danke im Voraus
ich würde gerne ein Bild auf einem JPanel verschieben. Das habe ich auch geschafft, nur springt das Bild immer zum Mauszeiger wenn ich das Bild verschieben möchte. Nur würde ich gerne das Bild frei verschieben können, ohne das es springt. Was muss ich machen, dass das klappt?
Java:
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.Image;
import java.awt.event.MouseEvent;
import java.awt.event.MouseMotionAdapter;
import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JPanel;
public class BildBewegen extends JPanel {
Image image;
int x,y;
public BildBewegen () {
image = new ImageIcon("x.png").getImage();
addMouseMotionListener(new Bewegen());
}
public void paint (Graphics g) {
super.paintComponent(g);
Graphics2D g2 = (Graphics2D) g;
g2.drawImage(image,x,y,this);
repaint();
}
class Bewegen extends MouseMotionAdapter {
public void mousePressed(MouseEvent e) {
x = e.getX();
y = e.getY();
}
public void mouseDragged(MouseEvent e) {
int dx = e.getX() - x;
int dy = e.getY() - y;
x+=dx;
y+=dy;
repaint();
}
}
public static void main(String[] args) {
JFrame frame = new JFrame();
frame.add(new BildBewegen());
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(900, 900);
frame.setLocationRelativeTo(null);
frame.setVisible(true);
}
}
Vielleicht kann mir ja jemand helfen.
Danke im Voraus