题目:实现 使用上下左右键控制小球移动
public class Test12 extends JFrame {
MyPanel mp = new MyPanel();
public static void main(String[] args) {
// TODO Auto-generated method stub
Test12 t12 = new Test12();
}
public Test12(){
mp = new MyPanel();
this.add(mp);
//实现监听
this.addKeyListener(mp);
this.setSize(250, 300);
this.setLocation(300, 120);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setVisible(true);
}
}
class MyPanel extends JPanel implements KeyListener{
Boll boll = new Boll(10,10);
int x= boll.getX();
int y= boll.getY();
public void paint(Graphics g){
super.paint(g);
//画出一个小球
g.setColor(Color.red);
g.fillOval( x,y, 20, 20);
}
@Override
public void keyPressed(KeyEvent e) {
// TODO Auto-generated method stub
if(e.getKeyCode()==KeyEvent.VK_UP){
y--;
}else if(e.getKeyCode()==KeyEvent.VK_DOWN){
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) {
// TODO Auto-generated method stub
}
@Override
public void keyTyped(KeyEvent e) {
// TODO Auto-generated method stub
}
}
class Boll{
public int getX() {
return x;
}
public void setX(int x) {
this.x = x;
}
public int getY() {
return y;
}
public void setY(int y) {
this.y = y;
}
int x=0;
public Boll(int x, int y) {
super();
this.x = x;
this.y = y;
}
int y=0;
}
实现事件监听的步骤:
1、实现相应的接口(ActionListener,KeyListener,MouseListener,WindowsListener)
在哪个类上面实现接口?需要来监听的那个类!
2、把接口的处理方法重写(Override)
3、把事件源注册监听