[java]eventhandling

Pagina: 1
Acties:
  • 62 views sinds 30-01-2008

  • GambitRS
  • Registratie: Juni 2001
  • Laatst online: 13-06-2013
Ik probeer een knop te maken in java die ook daadwerkelijk iets doet. Helaas krijg ik steeds dezelfde error:

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");
  }
}
}

MechWarrior || Monsters Game


  • .oisyn
  • Registratie: September 2000
  • Laatst online: 31-08 15:26

.oisyn

Moderator Devschuur®

Demotivational Speaker

* zucht *
[rml][ Java] routine aanroepen vanuit static main[/rml]

misschien is het handig als je je verdiept in een taal voordat je er wat mee gaat doen en vragen gaat posten hier op GoT? Je kunt je bijvoorbeeld afvragen waarom main static is en de rest niet, om maar even een zijstraat te noemen

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.


Dit topic is gesloten.