java游戏编程里JPanel怎样监控键盘呀? 下面是我的代码,为什么我加了监控不起作用?

importjavax.swing.*;importjava.awt.*;importjava.awt.event.*;importjava.applet.*;publi... import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.applet.*;

public class Game extends JFrame{//让该类继承JFrame好调用一些方法

Game(){//构造方法,在类被实例化的时候自动调用

this.setContentPane(new Map()); //打印出地图

this.setTitle("神级文字游戏"); //设置标题

this.setBounds(400,200,300,200); //设置窗口在屏幕显示的位置和宽度长度

this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); //设置该窗口可以点击关闭后结束运行

this.setResizable(false); //设置窗口一旦出现便不可改变大小

this.setVisible(true); //显示窗口

}

public static void main(String[] args){

new Game(); //让Game类实例化
}

}

class Map extends JPanel implements ActionListener{//这个Map就是在窗口显示的东西,在该类里继承了JPanel并且加了ActionListener接口

//定义出地图的初始量

int y;

Timer timer;

Map(){//地图的一些初始化

y=5;

timer=new Timer(100,this); //设置计时器,每100毫秒就执行这个类的监视器

timer.start(); //计时器开始工作
}

public void actionPerformed(ActionEvent ae){//为这个Map类加入一个监视器以供监视判断

y=y+5;

if(y>this.getHeight())y=5;

repaint(); //返回到paint方法
}

public void keyPressed(KeyEvent e){

int keyCode = e.getKeyCode();

switch(keyCode){
case KeyEvent.VK_6:
y=10;
repaint();
break;

}
}

public void paint(Graphics g){//这部分是专门绘画的,当Map启动时,会自动调用这部分来画出东西

super.paint(g); //擦干净再画

g.setColor(Color.RED); //设置绘画的颜色

g.fillOval(30, y, 20, 20); //画圆

}

}
展开
 我来答
小凡797
2011-10-03 · TA获得超过249个赞
知道小有建树答主
回答量:81
采纳率:0%
帮助的人:109万
展开全部
Game构造方法里面加一句:setFocusable(true);
JPanel 默认不接收键盘事件,上面是对默认行为对覆盖
不行可以追问
追问
不行呐.......
追答
额,话说你的JPanel还没实现KeyListener,只弄了个KeyPressed方法,何来的键盘事件,你在构造方法里面还要添加键盘事件addKeyListener。再加上我上面那句,帮你调试过,可以的,另外你的分不给力。~^~
代码太多,粘不上,给你主要的吧

class Map extends JPanel implements ActionListener,KeyListener{
Map(){//地图的一些初始化

y=5;
setFocusable(true);
addKeyListener(this);
timer=new Timer(100,this); //设置计时器,每100毫秒就执行这个类的监视器

timer.start(); //计时器开始工作
}
}
wuapplefan
2011-10-10
知道答主
回答量:7
采纳率:0%
帮助的人:9.5万
展开全部
话说我写的俄罗斯方块也是用JPanel,加上了setFocusable(true);
addKeyListener(参数);还是不能监听
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式