Witam,
Mam do napisania program, aplet, który wyświetla na ekranie kwadrat i który przesuwa się w górę, dół, lewo i prawo po naciśnięciu klawiszy na klawiaturze. Udało mi się to zrobić umieszczając na ekranie buttony, jednak chodzi o to by pobierać naciśnięty klawisz i wtedy stosować akcję:
Próbowałem w ten sposób:
import java.awt.*;
import java.awt.event.*;
import java.applet.*;
import java.io.*;
public class przesun extends Applet
{
//przyciski i ich elementy
int x1 = 300;
int y1 = 300;
int r = 20;
int c;
BufferedReader a=new BufferedReader(new InputStreamReader(System.in));
public void paint(Graphics g)
{
try{
c = a.read();
}
catch(IOException e){}
//petla warunkowa wykonywana po nacisnieciu przycisku
if (c==(int)'l')
{
//lewo
setBackground( new java.awt.Color(255, 255, 255));
g.setColor(Color.white);
g.drawRect(x1,y1,r,r);
g.setColor(Color.black);
x1 -= 5;
g.drawRect(x1,y1,r,r);
repaint();
}
if (c == (int)'p')
{
//prawo
setBackground( new java.awt.Color(255, 255, 255));
g.setColor(Color.white);
g.drawRect(x1,y1,r,r);
g.setColor(Color.black);
x1 += 5;
g.drawRect(x1,y1,r,r);
repaint();
}
if (c == (int)'g')
{
//gora
setBackground( new java.awt.Color(255, 255, 255));
g.setColor(Color.white);
g.drawRect(x1,y1,r,r);
g.setColor(Color.black);
y1 -= 5;
g.drawRect(x1,y1,r,r);
repaint();
}
if (c == (int)'d')
{
//dol
setBackground( new java.awt.Color(255, 255, 255));
g.setColor(Color.white);
g.drawRect(x1,y1,r,r);
g.setColor(Color.black);
y1 += 5;
g.drawRect(x1,y1,r,r);
repaint();
}
}
}
Ale nie jest to dobre rozwiązanie. Chciałbym prosić o pomoc.
Pozdrawiam