JAVA中的键盘查询机制 我编写的是一个对战小游戏,但是比如当player1按下某个键的时候,player2再按键不会进行任何操作,一直要等到player1松开按键才可以进行操作。我在网上查了下说可以用键盘查询操作,但是不知道具体怎么实现。请问能不能给出一个简单的用JAVA代码实现的例子。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 我把可能相关的代码发上来:public class game extends Thread{ Thread gameThread = null; public void start() { if (gameThread == null) { gameThread = new Thread(this); gameThread.start(); } app.addKeyListener(new KeyAdapter() { public void keyPressed(KeyEvent e) { keyAction(e); } public void keyTyped(KeyEvent e) { keyAction(e); } }); } private void keyAction(KeyEvent e) { int keycode = e.getKeyCode(); if (e.getKeyCode() == KeyEvent.VK_LEFT) { game.player1.moveleft(); } if (e.getKeyCode() == KeyEvent.VK_RIGHT ) { game.player1.moveright(); } if (e.getKeyCode()== KeyEvent.VK_UP) { game.player1.moveup(); } if (e.getKeyCode() == KeyEvent.VK_DOWN) { game.player1.movedown(); } keycode = e.getKeyCode(); if(e.getKeyCode() == KeyEvent.VK_SPACE) { player1.setBomb(); } keycode = e.getKeyCode(); if(e.getKeyCode() == KeyEvent.VK_R) { player2.moveup(); } if(e.getKeyCode() == KeyEvent.VK_F) { player2.movedown(); } if(e.getKeyCode() == KeyEvent.VK_D) { player2.moveleft(); } if(e.getKeyCode()== KeyEvent.VK_G) { player2.moveright(); } }此外在run()方法中,有一个死循环,我希望能在这个死循环中,每次循环都查询一下事件监听器看是否有键盘输入 直接监听 KeyPressed 不行吗? 多线程呢,一个线程负责监听一个Player 为什么要增加这个数组长度? 求救 这是怎么回事啊 求帮助,在此坐等,谢谢来看问题之人 struts+hibernate+spring整合高手进 请问如何在固定几个字符串中随机选择一个? ¥¥java面试一般问什么问题?? 有没有办法设置Connection永远不会超时? 求解释,该方法是什么意思,返回值是什么 如何在jbulider中设置classpath? 下半年要找工作,兄弟们进来交流一下! 什么是代理??? 我把java生成.exe后, 在自己电脑上可以运行,但在别人的机子上却跑不起来,一定要在别的机子上装jdk??
{
Thread gameThread = null;
public void start()
{
if (gameThread == null)
{
gameThread = new Thread(this);
gameThread.start();
}
app.addKeyListener(new KeyAdapter()
{
public void keyPressed(KeyEvent e)
{
keyAction(e);
}
public void keyTyped(KeyEvent e)
{
keyAction(e);
}
});
}
private void keyAction(KeyEvent e)
{
int keycode = e.getKeyCode();
if (e.getKeyCode() == KeyEvent.VK_LEFT)
{
game.player1.moveleft();
}
if (e.getKeyCode() == KeyEvent.VK_RIGHT )
{
game.player1.moveright();
}
if (e.getKeyCode()== KeyEvent.VK_UP)
{
game.player1.moveup();
}
if (e.getKeyCode() == KeyEvent.VK_DOWN)
{
game.player1.movedown();
}
keycode = e.getKeyCode();
if(e.getKeyCode() == KeyEvent.VK_SPACE)
{
player1.setBomb();
}
keycode = e.getKeyCode();
if(e.getKeyCode() == KeyEvent.VK_R)
{
player2.moveup();
}
if(e.getKeyCode() == KeyEvent.VK_F)
{
player2.movedown();
}
if(e.getKeyCode() == KeyEvent.VK_D)
{
player2.moveleft();
}
if(e.getKeyCode()== KeyEvent.VK_G)
{
player2.moveright();
}
}此外在run()方法中,有一个死循环,我希望能在这个死循环中,每次循环都查询一下事件监听器看是否有键盘输入