import java.awt.*;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
public class MyChar {
public static void main (String[] args){
Frame w = new Frame();
w.setSize(300,400);
MyPanel1 mp = new MyPanel1();
w.add(mp);
Thread t = new Thread(mp);
t.start();
w.addKeyListener(mp);
mp.addKeyListener(mp);
w.setVisible(true);
}
}
class MyPanel1 extends Panel implements Runnable , KeyListener{
int x[] = new int[10];
int y[] = new int[10];
char c[] = new char[10];
MyPanel1(){
for(int i = 0;i<10;i++){
x[i]=(int)(Math.random()*300);
y[i]=(int)(Math.random()*300);
c[i]=(char)(Math.random()*26+97);
}
}
public void paint(Graphics g){
for(int i = 0;i<10;i++){
g.drawString(new Character(c[i]).toString(),x[i],y[i]);
}
}
public void run(){
while(true){
for(int i = 0;i<10;i++){
y[i]++;
if(y[i]>400){
y[i]=0;
x[i]=(int)(Math.random()*300);
c[i]=(char)(Math.random()*26+97);
}
}
try{
Thread.sleep(30);
}catch(Exception e){}
repaint();
}
}
public void keyPressed(KeyEvent arg0){
char keyC = arg0.getKeyChar();
for(int i = 0;i<10;i++){
if(keyC == c[i]){
y[i]=0;
x[i]=(int)(Math.random()*300);
c[i]=(char)(Math.random()*26+97);
break;
}
}
}
public void keyReleased(KeyEvent arg0){}
public void keyTyped(KeyEvent arg0){}
}
可以把代码写成接口的模式,然后通过创建适配器进行接口转换