Ik probeer een knop te maken in java die ook daadwerkelijk iets doet. Helaas krijg ik steeds dezelfde error:
Eigenlijk heb ik gewoon een simpel script nodig waarin een window wordt geopend, derin zit een knop en als er op de knop wordt gedrukt, gebeurt er iets.
Bekijk anders mijn code maar en vertel me wat ik fout doe en hoe ik het oplos.
code:
1
2
3
4
| C:\Program Files\Xinox Software\JCreator LE\MyProjects\opdracht4\opdracht4.java:21: non-static variable this cannot be referenced from a static context
nr1.addActionListener(new calcAction());
^
1 error |
Eigenlijk heb ik gewoon een simpel script nodig waarin een window wordt geopend, derin zit een knop en als er op de knop wordt gedrukt, gebeurt er iets.
Bekijk anders mijn code maar en vertel me wat ik fout doe en hoe ik het oplos.
code:
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
| public class opdracht4 extends Applet {
private Button nr1;
private Button nr2;
private Button nr3;
private Button nr4;
public static void doeda() {
Frame f = new Frame("Calculator");
f.setLayout(new BorderLayout());
//Button creation:
//calcAction CalcEventAction = new calcAction();
Button nr1 = new Button("1");
nr1.addActionListener(new calcAction());
Button nr2 = new Button("2");
Button nr3 = new Button("3");
Button nr4 = new Button("4");
Button nr5 = new Button("5");
Button nr6 = new Button("6");
Button nr7 = new Button("7");
Button nr8 = new Button("8");
Button nr9 = new Button("9");
Button nr0 = new Button("0");
Button plus = new Button("+");
Button mult = new Button("*");
Button div = new Button("/");
Button neg = new Button("-");
Button rem = new Button("C");
Button eql = new Button("=");
Panel numbers123 = new Panel();
numbers123.add(nr1);
numbers123.add(nr2);
numbers123.add(nr3);
numbers123.add(plus);
Panel numbers456 = new Panel();
numbers456.add(nr4);
numbers456.add(nr5);
numbers456.add(nr6);
numbers456.add(mult);
Panel numbers789 = new Panel();
numbers789.add(nr7);
numbers789.add(nr8);
numbers789.add(nr9);
numbers789.add(div);
Panel numbersspec = new Panel();
numbersspec.add(neg);
numbersspec.add(nr0);
numbersspec.add(rem);
numbersspec.add(eql);
Panel numberscomb = new Panel();
numberscomb.setLayout(new BorderLayout());
numberscomb.add(numbers123,"North");
numberscomb.add(numbers456,"Center");
numberscomb.add(numbers789,"South");
Panel top = new Panel();
top.setLayout(new BorderLayout());
TextField tf1 = new TextField();
Button clr = new Button("Clr");
top.add(tf1,"Center");
top.add(clr,"East");
Panel finalscreen = new Panel();
finalscreen.setLayout(new BorderLayout());
finalscreen.add(top,"North");
finalscreen.add(numberscomb,"Center");
finalscreen.add(numbersspec,"South");
f.add(finalscreen,"Center");
//f.add(operators,"East");
f.pack();
f.show();
}
public static void main(String [] args) {
doeda();
}
class calcAction implements java.awt.event.ActionListener {
public void actionPerformed(java.awt.event.ActionEvent event)
{
Object object = event.getSource();
if (object == nr1)
System.out.println("hey");
else if (object == nr2)
System.out.println("hey");
else if (object == nr3)
System.out.println("hey");
else if (object == nr4)
System.out.println("hey");
}
}
} |