Schönen guten Abend zusammen,
ich versuche zum ersten Mal einen KeyDown in meine Applets miteinzubinden, allerdings habe ich zwei probleme:
1) Es kommt eine Fehlermeldung (deprecation) bei folgendem Applet
und beim 2. funktioniert die KeyDown Methode gar nicht. (Während sich im Thread eine Linie ununterbrochen von Links nach Rechts bewegt und wieder zurück), soll man mit der Tastatur die Richtung ändern können:
Woran liegt das? Kann mir jemand helfen oder sagen, was ich verändern soll?
Gruß Marcel
ich versuche zum ersten Mal einen KeyDown in meine Applets miteinzubinden, allerdings habe ich zwei probleme:
1) Es kommt eine Fehlermeldung (deprecation) bei folgendem Applet
Code:
import java.awt.*;
import java.applet.*;
public class Keys extends Applet {
int x=50;
public void init() {
setBackground(Color.white);
setLayout(null);
}
public boolean keyDown(Event evt, int key) {
if (key == Event.LEFT){x--;}
if (key == Event.RIGHT){x++;}
repaint();
return true;
}
public void paint(Graphics g) {
g.drawRect(x,50,10,10);
}
}
und beim 2. funktioniert die KeyDown Methode gar nicht. (Während sich im Thread eine Linie ununterbrochen von Links nach Rechts bewegt und wieder zurück), soll man mit der Tastatur die Richtung ändern können:
Code:
import java.applet.*;
import java.awt.*;
public class mitkey extends Applet
{ int x=5;
malen zeichenfeld = new malen();
ersterthread eins = new ersterthread();
boolean richtung=false;
boolean weiter=false;
public void init(){
setBackground(Color.black); setLayout(null);
zeichenfeld.setBackground(Color.black);
zeichenfeld.setBounds(10,10,400,300);
add(zeichenfeld);
eins.start();
}
public class ersterthread implements Runnable{
Thread lauf;
void start(){
if(lauf==null){lauf= new Thread(this); lauf.start(); weiter=true;}
}
public void run(){
while(weiter==true){
if(richtung==false){x++;}
else{x--;}
zeichenfeld.repaint();
try{lauf.sleep(12);}catch(InterruptedException e){}
if(x==200){richtung=true;}
if(x==5){richtung=false;}
}
}
void stop(){lauf=null; weiter=false;}
public boolean keyDown(Event evt, int key) {
if (key == Event.LEFT){richtung=true;}
if (key == Event.RIGHT){richtung=false;}
return true;
}
}
public class malen extends Canvas{
public void paint(Graphics g){
g.setColor(Color.red);
g.drawLine(x,5,x,200);
g.drawLine(x,5,x,200);
}
}
}
Woran liegt das? Kann mir jemand helfen oder sagen, was ich verändern soll?
Gruß Marcel