-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy path拖动画图程序
70 lines (57 loc) · 1.59 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
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class Main extends JFrame implements MouseMotionListener, MouseListener {
static Main frm = new Main();
int px1,py1,px2,py2,status = 0;
int rpx1,rpx2,rpy1,rpy2;
@Override
public void mouseClicked(MouseEvent e) {
}
@Override
public void mousePressed(MouseEvent e) {
}
@Override
public void mouseEntered(MouseEvent e) {
}
@Override
public void mouseExited(MouseEvent e) {
}
@Override
public void mouseDragged(MouseEvent e) {
Graphics g = this.getGraphics();
g.setColor(Color.yellow);
g.setXORMode(Color.black);
if(status == 1) {
g.drawOval(px1,py1,px2,py2);
} else {
px1 = e.getX();
px2 = e.getY();
status = 1;
}
px2 = Math.abs(e.getX()-px1);
py2 = Math.abs(e.getY()-py1);
g.drawOval(px1,py1,px2,py2);
rpx1 = px1; rpy1 = py1; rpx2 = px2; rpy2 = py2;
}
@Override
public void mouseMoved(MouseEvent e) {
px1 = e.getX();
py1 = e.getY();
status = 0;
}
@Override
public void mouseReleased(MouseEvent e) {
Graphics g = this.getGraphics();
g.setColor(Color.red);
g.drawOval(rpx1,rpy1,rpx2,rpy2);
}
public static void main(String[] args) {
frm.setTitle("Oval");
frm.setSize(750,690);
frm.addMouseMotionListener(frm);
frm.addMouseListener(frm);
frm.setVisible(true);
frm.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}