上一节已经学习了事件处理,这一节需要完成通过键盘的上下左右键控制小球移动。
然后再通过应用到我们绘制的坦克上。
/**
* 加深对事件处理机制的理解
* 通过光标的上下左右键,控制小球的左右上下移动.
*/
package com.test4;
import java.awt.*;
import java.awt.event.*; import javax.swing.*;
public class Demo9_4 extends JFrame { MyPanel mp = null; public static void main(String[] args) {
Demo9_4 demo9_4 = new Demo9_4();
}
public Demo9_4(){
mp = new MyPanel();
this.add(mp); this.addKeyListener(mp); this.setSize(400,300);
this.setVisible(true);
} }
//事件源JFrame->Demo9_4,MyPanel监听者,需要画小球
//定义自己的面板
class MyPanel extends JPanel implements KeyListener{
int x=10;
int y=10;
public void paint(Graphics g){
super.paint(g);
g.fillOval(x, y, 10, 10);
} @Override
public void keyTyped(KeyEvent e) {//输入可以以显示的 } @Override
public void keyPressed(KeyEvent e) {//按下去.
// System.out.println(e.getKeyCode()==37);
if(e.getKeyCode()==KeyEvent.VK_DOWN){
y+=10;
}else if(e.getKeyCode()==KeyEvent.VK_UP){
y--;
}else if(e.getKeyCode()==KeyEvent.VK_LEFT){
x--;
}else if(e.getKeyCode()==KeyEvent.VK_RIGHT){
x++;
}
this.repaint();
}
@Override
public void keyReleased(KeyEvent e) {//松开 }
}
可以通过键盘的上下左右键控制小球运动。