java怎么让按住键盘时不响应不要说用keyReleased()。 30
我想让按住键盘时只是按下的一瞬间响应,后面按住不放的就不做处理。不要说keyReleased(),因为keyReleased()要松开后才会执行下面的程序,我要按下去的时...
我想让按住键盘时只是按下的一瞬间响应,后面按住不放的就不做处理。不要说keyReleased(),因为keyReleased()要松开后才会执行下面的程序,我要按下去的时候马上执行
public void keyPressed(KeyEvent e)
{
int key = e.getKeyCode();
switch(key)
{
case KeyEvent.VK_SPACE:
Fire();
//后面省略若干代码
}
} 展开
public void keyPressed(KeyEvent e)
{
int key = e.getKeyCode();
switch(key)
{
case KeyEvent.VK_SPACE:
Fire();
//后面省略若干代码
}
} 展开
1个回答
展开全部
tf.addKeyListener(new KeyAdapter1());
class KeyAdapter1 extends KeyAdapter{
@Override
public void keyPressed(KeyEvent e) {
int code = e.getKeyCode();
if(!(code>=KeyEvent.VK_0&&code<=KeyEvent.VK_9))
{
System.out.println(code+"..."+"是非法的");
tf.removeKeyListener(this); //注销事件 ------------------------------
// e.consume();
}
}
}
class KeyAdapter1 extends KeyAdapter{
@Override
public void keyPressed(KeyEvent e) {
int code = e.getKeyCode();
if(!(code>=KeyEvent.VK_0&&code<=KeyEvent.VK_9))
{
System.out.println(code+"..."+"是非法的");
tf.removeKeyListener(this); //注销事件 ------------------------------
// e.consume();
}
}
}
追问
额 ,我只是想在长按键盘按键是,让方法只执行一次。这个不是判断的除0-9外其他的不执行么,另外tf在这里是怎么调用的啊
追答
你没仔细看代码吗。判断0-9只是业务逻辑。你改成你的业务逻辑就可以了。
关键是这句:tf.removeKeyListener(this); //注销事件 --------执行了1次就注销这样以后也就不生效
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询