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 一个菜鸟级问题,帮我理解一下! 语法错误 这问题解决不了么? 我写的一个矩阵类,请大家指教. Swing-JFrame窗体居中 今天冬至,散分.还有希望考试不要挂科!!!在问一个<接口>问题~~~~ 我在JPanel上画的图形在拖动的时候怎么老一闪一闪的呀? java访问数据库的问题请教 一个很傻的提问 有关浏览器的问题 什么是代理??? 我把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()方法中,有一个死循环,我希望能在这个死循环中,每次循环都查询一下事件监听器看是否有键盘输入