【发布时间】:2013-06-24 23:05:58
【问题描述】:
我正在尝试创建一个程序,其中图像在屏幕上,如果变量 keycode 等于键 VK_ESCAPE,它将使用 validate 方法从屏幕上删除图像。如何聚焦 keylistener 以便运行 if 语句并验证图像。我导入了正确的库并且没有出现错误?!
public void keyPressed(KeyEvent e){
int keycode = e.getKeyCode();
if(keycode == KeyEvent.VK_ESCAPE){
scroll = new ImageIcon("").getImage();
validate();
e.consume();
}
}
【问题讨论】:
-
是否调用了
keyPressed?要触发事件的组件必须具有键盘焦点。推荐的替代方法是使用key bindings 而不是KeyListener。那么组件就不需要成为焦点所有者了。 -
您需要从父级删除图像,例如JPanel 然后调用 revalidate()
标签: java swing keylistener