我在一个KeyListener中为一个非常简单的游戏编程控件。伊芙得到了下面的问题。
我做了类似的事情(只是一个简单的示例,而不是我实现的代码):
public void keyPressed(KeyEvent e) {
if (e.getKeyCode() == KeyEvent.VK_LEFT) {
leftPressed = true;
Methodxyz(leftpressed,rightpressed,uppressed)
}
if (e.getKeyCode() == KeyEvent.VK_RIGHT) {
rightPressed = true;
Methodxyz(leftpressed,rightpressed,uppressed)
}
if (e.getKeyCode() == KeyEvent.VK_UP) {
upPressed = true;
Methodxyz(leftpressed,rightpressed,uppressed)
}
}
public void keyReleased(KeyEvent e) {
if (e.getKeyCode() == KeyEvent.VK_LEFT) {
leftPressed = false;
}
if (e.getKeyCode() == KeyEvent.VK_RIGHT) {
rightPressed = false;
}
if (e.getKeyCode() == KeyEvent.VK_UP) {
upPressed = false;
}
}
如果我同时按下两个键(左,上),你就可以移动charachter对角线。问题是监听器与最后一个按下的KeyEvent一起工作,所以如果我先按左再向上,但没有释放左再向上,对象就不会移动(仍然按左)。
我怎么处理?是否可以在我的keylistener的keypressed方法中激发keypressed事件,直到leftpressed为false?
有什么想法吗?
提前致谢
public void update() {
if (up == true) {
SomeMethod(Key.UP);
}
if (down == true) {
SomeMethod(Key.DOWN);
}
if (left == true) {
someMethod(Key.LEFT);
}
if (right == true) {
someMethod(Key.RIGHT);
}
}
public void keyReleased(KeyEvent e) {
switch (e.getKeyCode()) {
case KeyEvent.VK_S:
down = false;
break;
case KeyEvent.VK_W:
up = false;
break;
case KeyEvent.VK_A:
left = false;
break;
case KeyEvent.VK_D:
right = false;
break;
}
}
public void keyPressed(KeyEvent e) {
switch (e.getKeyCode()) {
case KeyEvent.VK_S:
down = true;
break;
case KeyEvent.VK_W:
up = true;
break;
case KeyEvent.VK_A:
left = true;
break;
case KeyEvent.VK_D:
right = true;
break;
问题内容: 我正在使用Selenium WebDriver语法。我知道,在基于Selenium服务器的语法中,您可以执行以下操作来触发javascript事件: 如何在使用WebDriver(例如FirefoxDriver)创建的应用程序中执行相同操作? 问题答案: 不幸的是,Selenium WebDriver设计人员明确决定不在 Selenium 2中包含此功能。 明智的决定是不将此功能包含在
问题内容: 我正在使用Selenium WebDriver语法。我知道,在基于Selenium服务器的语法中,您可以执行以下操作来触发javascript事件: 如何在使用WebDriver(例如FirefoxDriver)创建的应用程序中执行相同操作? 问题答案: 不幸的是,Selenium WebDriver设计人员明确决定不在 Selenium 2中包含此功能。 明智的决定是不将此功能包含在
问题内容: 我目前正在尝试在程序中实现一个键侦听器,以便当我按下箭头键时它会执行一个操作,程序中的对象向左或向右移动。 这是我程序中的移动方法 我想知道程序应该如何读入(KeyEvent)e。我真的不能输入箭头键。 请帮忙! 编辑:我还需要知道我需要添加到代码中的内容,以便我的程序在继续使用另一种方法之前要等待大约700毫秒的时间才能进行键输入 问题答案: http://docs.oracle.c
问题内容: 我有一个使用从扩展的类的子类 我将一个对象添加到框架-中。现在,当我按下任意键盘键时,不会调用任何方法,并且似乎没有窗口焦点。我也尝试过调用,但仍然没有响应。 如何使它响应按键? 问题答案: 您是否为面板设置了面板本身?另外,您可能需要将面板设置为可聚焦。我通过此代码对其进行了测试,它似乎可以正常工作
在我的代码中,我有: 带有普通JPanel的JFrame,其中包含一些JComponent对象。这些JComponents有:-一个JTextFields列表。-一个侦听器,当鼠标插入时高亮显示边框,当鼠标退出时隐藏边框。如果鼠标在jceeExit方法的边框上嵌套,那么当鼠标在jceeExit方法的边框上嵌套时,也会触发jceeExit: 问题是: 代码: 代码是为了解决上述问题而编写的。以下是J