Ik zit nu al 20 minuten dit stukje code op fouten na te lopen en blijf hangen op de MouseHandler, in de constructor van WindingEx blijft de compiler hangen op new MouseHandler. Met de wel bekende error "cannot resolve symbol" nou ben ik dus zoals gezecht al 20 minuten bezig en ik zie de fout niet. Ik heb zelfs alle mogelijk bedenkelijke en zelfs onnodige classes geimporteerd voor de zekerheid maar nog steeds de zelfde fout. Is er nog iemand online die mijn fout in 1x ziet?
(o ja vraag niet het hoe en waarom van de code het is namelijk een oefening uit een boek die ik aan het maken ben)
(o ja vraag niet het hoe en waarom van de code het is namelijk een oefening uit een boek die ik aan het maken ben)
Java:
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
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
| import java.applet.Applet; import javax.swing.*; import java.awt.*; import java.awt.event.*; import java.awt.geom.*; import java.io.*; import java.util.*; public class WindingEx extends JFrame { myCustomCanvas mc; JButton newpath; public WindingEx() { super("Winding Examples"); BorderLayout f1 = new BorderLayout(); Panel uipanel = new Panel(); newpath = new JButton("new path"); uipanel.add(newpath); mc = new myCustomCanvas(this); mc.setSize(800,600); ButtonHandler bhandler = new ButtonHandler(mc); MouseHandler mhandler = new MouseHandler(mc); newpath.addActionListener(bhandler); mc.addMouseListener(bhandler); this.getContentPane().setLayout(f1); this.getContentPane().add(mc,BorderLayout.CENTER); this.getContentPane().add(uipanel,BorderLayout.NORTH); this.setSize(800,600); this.show(); addWindowListener(new WindowEventHandler()); }// einde constructor class WindowEventHandler extends WindowAdapter { public void windowClosing(WindowEvent e) { system.exit(0); } }// einde innerclasse eventhandler public static void main(String[] args) { new WindingEx(); }// einde main }// einde class windingEx class MouseHandler implements MouseListener { myCustomCanvas mc; public void mousePressed(MouseEvent e) { mc.drawPoint(e.getX(),e.getY()); } }// einde class mousehandler class ButtonHandler implements ActionListener { myCustomCanvas mc; public ButtonHandler(myCustomCanvas mc) { this.mc = mc; } public void actionPerformed(ActionEvent e) { mc.generateGp(); } }// einde class buttonhandler class myCustomCanvas extends Canvas { WindingEx wex; String insider; String even_oddMessage = "click on a point"; String non_zeroMessage = " "; Random r; GeneralPath gp; public myCustomCanvas(WindingEx wex) { r = new Random(); this.wex = wex; this.setSize(800,600); generateGp(); }// constructor public void generateGp() { gp = new GeneralPath(); gp.moveTo(r.nextInt(this.getSize().width), r.nextInt(this.getSize().height)); for (int i=1; i<10; i++) { gp.lineTo(r.nextInt(this.getSize().width), r.nextInt(this.getSize().height)); } gp.closePath(); gp.drawPoint(r.nextInt(this.getSize().width), r.nextInt(this.getSize().height)); repaint(); }// nieuw path public void drawPoint(int x, int y) { this.x = x; this.y = y; gp.setWindingRule(GeneralPath.WIND_EVEN_ODD); even_oddMessage = "EVEN_ODD RULE: ".concat(isInside(x,y)); gp.setWindingRule(GeneralPath.WIND_NON_ZERO); non_zeroMessage = "NON_ZERO RULE: ".concat(isInside(x,y)); repaint(); }// punt tekenen public String isInside(int x, int y) { if (gp.contains(new Point(x,y))) insider="INSIDE"; else insider="OUTSIDE"; return insider; }// Inside or not in tekst terug public void paint(Graphics g) { Graphics2D g2d = (Graphics2D) g; g2d.drawString(even_oddMessage,440,80); g2d.drawString(non_zeroMessage,440,100); g2d.setColor(Color.blue); g2d.fill(new Rectangle2D.Double(x,y,5,5)); g2d.setColor(Color.red); float dash [] = {5.5f}; BasicStroke stk = new BasicStroke(4.0f, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER, 10.f, dash, 2.0f); g2d.setStroke(stk); g2d.draw(gp); } } |
welcome my son, welcome to the machine