Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/333.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何正确处理Java中的用户输入?_Java - Fatal编程技术网

如何正确处理Java中的用户输入?

如何正确处理Java中的用户输入?,java,Java,我正在实现一个扩展javax.swing.JFrame的类X 我在X中添加了内部类KeyInputHandler,代码如下: private class KeyInputHandler extends KeyAdapter { public void keyPressed(KeyEvent e) { if (e.getKeyCode() == KeyEvent.VK_LEFT) { } if (e.getKeyCode() == KeyEvent.VK_RIGHT) { ... }

我正在实现一个扩展javax.swing.JFrame的类X 我在X中添加了内部类KeyInputHandler,代码如下:

private class KeyInputHandler extends KeyAdapter {
public void keyPressed(KeyEvent e) {
if (e.getKeyCode() == KeyEvent.VK_LEFT) {


}
if (e.getKeyCode() == KeyEvent.VK_RIGHT) {
    ...
}
if (e.getKeyCode() == KeyEvent.VK_UP) {
    ...
}
if (e.getKeyCode() == KeyEvent.VK_SPACE) {
    ...
}
if (e.getKeyCode() == KeyEvent.VK_B) {
    ...
}
}
}

但由于某种原因,它无法识别我的输入。我必须向类X中添加其他内容吗?

KeyListener可能很棘手,而且最重要的是,只有在添加到的组件具有焦点时才能工作。否则你就沉下去了。此外,您还没有在发布的代码中显示您已将KeyListener添加到任何组件的位置。是的,你有它的类,但是你实际使用这个类来创建一个对象并将它添加到任何东西中吗

尽管如此,对于您的应用程序类型和问题,您可能最好使用(查看链接),这是一个更高级别的概念,在关注问题时更灵活

编辑
评论中提出的问题是

什么是焦点


根据,当GUI组件接收键盘输入时,它具有焦点。通常这是通过以某种方式突出显示来表示的。

您可以发布工作代码吗?仅仅创建类并不意味着会自动调用它。你打电话给addKeyListener了吗?