-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathCanvasArea.java
More file actions
71 lines (51 loc) · 1.58 KB
/
CanvasArea.java
File metadata and controls
71 lines (51 loc) · 1.58 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
71
import java.awt.LayoutManager;
import java.awt.Color;
import java.awt.Component;
import java.awt.Graphics;
import javax.swing.JComponent;
import javax.swing.JPanel;
import java.util.ArrayList;
import java.util.Timer;
import java.util.TimerTask;
public class CanvasArea extends JPanel {
GUI main_GUI;
private Timer timer;
public MainObject pressed_obj=null;
public MainObject entered_obj=null;
public ArrayList<MainLine> line;
public MainLine temp_line=null;
public CanvasArea(GUI m) {
super();
setBackground(Color.WHITE);
setLayout(null);
this.main_GUI = m;
this.line = new ArrayList<MainLine>();
addMouseListener(new CanvasEvent(m));
TimerTask TimeRepaint= new TimerTask(){
@Override
public void run() {
repaint();
}
};
timer = new Timer();
timer.schedule(TimeRepaint,0,50);
}
public void paintComponent(Graphics g) {
super.paintComponent(g);
// System.out.println(this.main_GUI.canvas_area.getComponents().length);
// int z_order = this.main_GUI.canvas_area.getComponents().length-1;
// for(Component obj: this.main_GUI.canvas_area.getComponents()) {
// System.out.println(obj.getClass().getName());
// this.main_GUI.canvas_area.setComponentZOrder(obj, z_order--);
// }
// System.out.println("==");
g.setColor(Color.BLACK);
if(this.temp_line!=null && this.temp_line.end_obj!=null)
this.temp_line.draw(g);
for(MainLine l: line) {
//TODO 如果有temp_line好像就可以拿掉判斷式?
if(l.end_obj!=null)
l.draw(g);
}
}
}