質問編集履歴
1
TN8001さんの修正内容で変更したところ次のようなエラーが出ました。TN8001さんのコードでも同じエラーが出ました。
test
CHANGED
File without changes
|
test
CHANGED
@@ -14,51 +14,73 @@
|
|
14
14
|
### 発生している問題・エラーメッセージ
|
15
15
|
|
16
16
|
```
|
17
|
-
エラーメッセージ
|
18
|
-
```Syntax error, insert "}" to complete MethodBody
|
19
|
-
Syntax error on token ".", @ expected after this token
|
20
|
-
Syntax error, insert "SimpleName" to complete QualifiedName
|
21
|
-
Syntax error, insert "Identifier (" to complete MethodHeaderName
|
22
|
-
|
17
|
+
Exception in thread "main" java.lang.NoSuchMethodError: 'void DrawCanvas.<init>(int)'
|
23
|
-
|
18
|
+
at Test2.main(Test1.java:29)
|
24
|
-
|
19
|
+
```
|
25
20
|
|
26
21
|
### 該当のソースコード
|
27
22
|
|
28
23
|
該当の言語
|
29
|
-
Java
|
24
|
+
```Java
|
30
|
-
|
31
|
-
import javax.swing.
|
25
|
+
import javax.swing.*;
|
32
|
-
import javax.swing.JPanel;
|
33
26
|
import java.awt.Color;
|
34
27
|
import java.awt.Graphics;
|
35
28
|
import java.util.Scanner;
|
36
29
|
|
37
|
-
public class Test
|
30
|
+
public class Test1 {
|
31
|
+
|
38
32
|
public static void main(String[] args){
|
33
|
+
Scanner stdIn = new Scanner(System.in);
|
34
|
+
int n;
|
35
|
+
|
36
|
+
while (true) {
|
37
|
+
System.out.println("正何角形?(3-999):");
|
38
|
+
try {
|
39
|
+
n = stdIn.nextInt();
|
40
|
+
if (3 <= n && n <= 999) break;
|
41
|
+
} catch (Exception ignored) { stdIn.next(); }
|
42
|
+
}
|
43
|
+
|
44
|
+
|
45
|
+
double a = n;
|
46
|
+
double b = 180/a;
|
47
|
+
double m = Math.toRadians(b);
|
48
|
+
double l = a*(Math.sin(m));
|
49
|
+
System.out.println("正"+n+"角形の円周率の近似:"+l);
|
50
|
+
|
51
|
+
|
39
|
-
|
52
|
+
GameWindow gw = new GameWindow("円と正多角形",1000,1000);
|
40
|
-
gw.add(new DrawCanvas());
|
53
|
+
gw.add(new DrawCanvas(n));
|
41
54
|
gw.setVisible(true);
|
55
|
+
|
42
56
|
}
|
43
57
|
}
|
44
58
|
|
45
59
|
class DrawCanvas extends JPanel{
|
60
|
+
private int n;
|
46
|
-
|
61
|
+
public DrawCanvas(int n) {
|
62
|
+
this.n = n;
|
63
|
+
SpinnerNumberModel model = new SpinnerNumberModel(n, 3,999, 1);
|
47
|
-
|
64
|
+
JSpinner spinner = new JSpinner(model);
|
48
|
-
|
65
|
+
spinner.addChangeListener(e -> {
|
49
|
-
|
66
|
+
this.n = (int) spinner.getValue();
|
67
|
+
repaint();
|
68
|
+
});
|
69
|
+
add(spinner);
|
50
|
-
|
70
|
+
}
|
71
|
+
|
72
|
+
|
73
|
+
|
51
|
-
public void paintComponent(Graphics g) {
|
74
|
+
@Override public void paintComponent(Graphics g) {
|
52
75
|
super.paintComponent(g);
|
53
|
-
|
54
|
-
|
76
|
+
|
55
77
|
int x0 = 500;
|
56
78
|
int y0 = 500;
|
57
79
|
int r = 400;
|
58
80
|
int x[] = new int[n];
|
59
81
|
int y[] = new int[n];
|
60
82
|
|
61
|
-
double delta =
|
83
|
+
double delta = 2 * ( Math.PI /(double)n );
|
62
84
|
|
63
85
|
for(int i= 0; i<n; i++) {
|
64
86
|
x[i] = (int)(Math.cos(-Math.PI/2.0 + delta * i)*r) + x0;
|
@@ -68,14 +90,11 @@
|
|
68
90
|
g.drawPolygon(x, y, n);
|
69
91
|
|
70
92
|
}
|
71
|
-
}
|
72
|
-
|
73
|
-
public void paint(Graphics g) {
|
93
|
+
public void paint(Graphics g) {
|
74
|
-
|
94
|
+
super.paint(g);
|
75
|
-
g.setColor(Color.blue);
|
95
|
+
g.setColor(Color.blue);
|
76
|
-
g.drawOval(100, 100, 800, 800);
|
96
|
+
g.drawOval(100, 100, 800, 800);
|
77
97
|
}
|
78
|
-
|
79
98
|
}
|
80
99
|
|
81
100
|
class GameWindow extends JFrame{
|
@@ -88,5 +107,8 @@
|
|
88
107
|
|
89
108
|
}
|
90
109
|
}
|
110
|
+
```
|
111
|
+
|
112
|
+
|
91
113
|
|
92
114
|
|