请问这段代码错在哪里?在线等
阳光影子 2015-11-03 08:35:46 /*
* 功能是对事件处理机制的理解
* 1、通过上下左右键控制小球的位置
*/
package com.test2;
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
public class Demo11_1 extends JFrame{
MyPanel mp=null;
public static void main(String[] args) {
// TODO Auto-generated method stub
Demo11_1 demo=new Demo11_1();
}
public Demo11_1()
{
//新建一个面板
mp=new MyPanel();
this.add(mp);
//添加事件监听
this.addKeyListener(mp); //键盘监听这个类所设定的对象,是对mp的监听
//设置窗体大小
this.setSize(300,400);
//退出时关闭窗口
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
//窗体可见
this.setVisible(true);
}
}
//定义自己的面板
class MyPanel extends JPanel implements KeyListener{
int x=10;
int y=10;
//设置画笔属性
public void paint(Graphics g){
//调用父类方法,方法重写
super.paint(g);
//设置画笔颜色
g.setColor(Color.blue);
//绘制一个圆,坐标 宽度 高度
g.fillOval(x,y,20,20);
}
@Override
public void keyPressed(KeyEvent e) {
// TODO Auto-generated method stub
if(e.getKeyCode()==KeyEvent.VK_UP){
System.out.println("键被按下"+(char)e.getKeyCode());
y-=10;
}
if(e.getKeyCode()==KeyEvent.VK_DOWN){
System.out.println("键被按下");
y+=10;
}
if(e.getKeyCode()==KeyEvent.VK_LEFT){
System.out.println("键被按下"+e.getKeyCode());
x-=10;
}
if(e.getKeyCode()==KeyEvent.VK_RIGHT){
x+=10;
}
this.repaint();
}
@Override
public void keyReleased(KeyEvent e) {
// TODO Auto-generated method stub
}
@Override
public void keyTyped(KeyEvent e) {
// TODO Auto-generated method stub
}
}