Hoi,
Ik ben een beetje aan het oefenen met Java.
Wat ik probeer te maken is een Canvas met knoppen die de positie van een blokje aansturen.
De knoppen zijn geplaatst, Foutloos en wel.
Het blokje ook, en ook deze foutloos.
Zelfs de actionlistener heb ik erin geplaatst zonder fouten.
Echter zodra ik een klasse aanmaak die de variabel aanpast en een opdracht geeft tot repaint krijg ik de volgende error tijdens het 'uitvoeren' van de applet. :
Hieronder mijn code.
Ziet iemand misschien de fout die ik gemaakt heb?
Ik ben een beetje aan het oefenen met Java.
Wat ik probeer te maken is een Canvas met knoppen die de positie van een blokje aansturen.
De knoppen zijn geplaatst, Foutloos en wel.
Het blokje ook, en ook deze foutloos.
Zelfs de actionlistener heb ik erin geplaatst zonder fouten.
Echter zodra ik een klasse aanmaak die de variabel aanpast en een opdracht geeft tot repaint krijg ik de volgende error tijdens het 'uitvoeren' van de applet. :
Ik heb al op google gezocht en daar werd me verteld dat ik een niet bestaand object probeerde aan te spreken. Maar ik definieer dit object toch bij voorbaat?init:
deps-jar:
compile-single:
run-applet:
Exception in thread "AWT-EventQueue-1" java.lang.NullPointerException
at Navigatie$omlaagKnopHandler.actionPerformed(beweegobject.java:72)
at java.awt.Button.processActionEvent(Button.java:388)
at java.awt.Button.processEvent(Button.java:356)
at java.awt.Component.dispatchEventImpl(Component.java:3955)
at java.awt.Component.dispatchEvent(Component.java:3803)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:463)
at java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchThread.java:242)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:163)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:157)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:149)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:110)
Hieronder mijn code.
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
| import java.awt.event.*;
import javax.swing.*;
import java.applet.*;
import java.awt.*;
public class beweegobject extends Applet {
private Navigatie navigatie;
private Blokje blokje;
public void init() {
setLayout( new BorderLayout() );
blokje = new Blokje();
add(blokje, BorderLayout.CENTER );
navigatie = new Navigatie();
add( navigatie, BorderLayout.SOUTH );
}
}
class Blokje extends Canvas {
private int hor = 10,
ver = 10;
public void omhoog(){
ver = ver - 10;
repaint();
}
public void omlaag(){
ver = ver + 10;
repaint();
}
public void paint( Graphics g ){
int midden = getBounds().width / 2;
g.setColor( Color.red );
g.fillRect( 20, ver, 10, 10 );
}
}
class Navigatie extends Panel{
private Button omhoogKnop, omlaagKnop, naarlinksKnop, naarrechtsKnop;
private Blokje blokje;
public Navigatie( ) {
//public Navigatie( Blokje s ) {
// this.blokje = s;
omhoogKnop = new Button( "omhoog" );
omlaagKnop = new Button( "omlaag" );
naarlinksKnop = new Button( "naar links" );
naarrechtsKnop = new Button( "naar rechts" );
omhoogKnop.addActionListener( new omhoogKnopHandler() );
omlaagKnop.addActionListener( new omlaagKnopHandler() );
add( omhoogKnop );
add( omlaagKnop );
add( naarlinksKnop );
add( naarrechtsKnop );
}
class omhoogKnopHandler implements ActionListener{
public void actionPerformed( ActionEvent e ){
blokje.omhoog();
blokje.repaint();
}
}
class omlaagKnopHandler implements ActionListener{
public void actionPerformed( ActionEvent e ){
blokje.omlaag();
blokje.repaint();
}
}
} |
Ziet iemand misschien de fout die ik gemaakt heb?