-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathDragPanel.java
More file actions
57 lines (39 loc) · 1.41 KB
/
DragPanel.java
File metadata and controls
57 lines (39 loc) · 1.41 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
package DragAndDrop;
import javax.swing.*;
import java.awt.*;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.awt.event.MouseMotionAdapter;
public class DragPanel extends JPanel {
ImageIcon image = new ImageIcon("D:\\codeME\\JavaME\\OpenANewGui\\src\\DragAndDrop\\gas.png");
final int WIDTH = image.getIconWidth();
final int HEIGHT = image.getIconHeight();
Point imageCorner;
Point prevPt;
DragPanel() {
imageCorner = new Point(0,0);
ClickListener clickListener = new ClickListener();
DragListener dragListener = new DragListener();
this.addMouseListener(clickListener);
this.addMouseMotionListener(dragListener);
}
public void paintComponent(Graphics g) {
super.paintComponent(g);
image.paintIcon(this,g,(int)imageCorner.getX(),(int)imageCorner.getY());
}
private class ClickListener extends MouseAdapter {
public void mousePressed(MouseEvent e){
prevPt = e.getPoint();
}
}
private class DragListener extends MouseMotionAdapter {
public void mouseDragged(MouseEvent e) {
Point currentPt = e.getPoint();
imageCorner.translate(
(int) (currentPt.getX() - prevPt.getX()),
(int) (currentPt.getY() - prevPt.getY()));
prevPt = currentPt;
repaint();
}
}
}