stienoo
Gebruiker
- Lid geworden
- 31 dec 2007
- Berichten
- 315
De titel zegt het, als ik een timer wil starten krijg ik een fout.
De fout:
De code:
*edit*
Of, kan er iemand een applet (of aplicatie) schrijven/geven waarin je kan springen (gewoon een cirkel)?
De fout:
Code:
Exception in thread "AWT-EventQueue-1" java.lang.NullPointerException
at Bewegen2$TimerHandler.actionPerformed(Bewegen2.java:85)
at javax.swing.Timer.fireActionPerformed(Unknown Source)
at javax.swing.Timer$DoPostEvent.run(Unknown Source)
at java.awt.event.InvocationEvent.dispatch(Unknown Source)
at java.awt.EventQueue.dispatchEvent(Unknown Source)
at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.run(Unknown Source)
De code:
Code:
import java.awt.Graphics;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import java.applet.*;
import javax.swing.*;
import java.awt.event.*;
public class Bewegen2 extends Applet implements KeyListener{
public static boolean jump = false;
public static int x=50;
public static int y=50;
public static Bal bal;
private Timer timer;
int lengtex1[] ={0,5};
int lengtey1[] ={0,5};
int lengtex2[] ={0,5};
int lengtey2[] ={0,5};
int h=20; //hoogte cirkel
int teller;
public void init(){
this.setFocusable(true);
this.addKeyListener(this);
timer = new Timer(500, new TimerHandler() );
}
public void paint(Graphics g){
g.fillOval(x,y,h,h);
g.drawLine(30,30,100,30);
}
public void keyTyped(KeyEvent e) {
//dummy
}
@Override
public void keyPressed(KeyEvent e) {
if(e.getKeyCode() == KeyEvent.VK_DOWN){
y+=2;
for(int i=30;i<100;i++){
if((y+h)==30&&x==i){
y-=2;
}
}
}
if(e.getKeyCode() == KeyEvent.VK_UP){
y-=2;
for(int i=30;i<100;i++){
if(y==30&&x==i){
y+=2;
}
}
}
if(e.getKeyCode() == KeyEvent.VK_RIGHT){
x+=2;/*
for(int i=30;i<100;i++){
if(x==i){
x-=2;
}
}
*/
}
if(e.getKeyCode() == KeyEvent.VK_LEFT){
x-=2;
for(int i=30;i<100;i++){
if(y==30&&x==i){
x+=2;
}
}
}
if(e.getKeyCode() == KeyEvent.VK_SPACE){
timer.start();
}
repaint();
}
@Override
public void keyReleased(KeyEvent arg0) {
// TODO Auto-generated method stub
}
class TimerHandler implements ActionListener{
public void actionPerformed( ActionEvent e){
if(teller<100){
x++;
bal.setbounds(x, y);
bal.teken();
}
if(teller>100){
x--;
bal.setbounds(x, y);
bal.teken();
}
if(teller==200){
timer.stop();
}
teller++;
}
}
}
class Bal extends Thread{
private Graphics g;
private Timer timer;
public int x, y, h, teller;
public Bal(Graphics g, int x, int y, int h){
this.g = g;
this.x = x;
this.y = y;
this.h = h;
}
public void setbounds(int x, int y){
this.x = x;
this.y = y;
}
public void teken(){
g.drawOval(x, y, h, h);
}
}
*edit*
Of, kan er iemand een applet (of aplicatie) schrijven/geven waarin je kan springen (gewoon een cirkel)?
Laatst bewerkt: