Java Swing |键侦听器根本没有响应

Java Swing |键侦听器根本没有响应,java,swing,keylistener,Java,Swing,Keylistener,我正在努力让我的KeyEvent工作。遗憾的是,keyTyped(KeyEvent e)根本没有响应。:) 我在我的班上实现了KeyEvnet 我按如下方式分配了侦听器: JTextfield searchBar = new JTextField(); searchBar.addKeyListener( this ); 我的关键事件如下所示: @Override public void keyTyped(KeyEvent e) { if (e.getKeyCode() == KeyEv

我正在努力让我的KeyEvent工作。遗憾的是,
keyTyped(KeyEvent e)
根本没有响应。:)

我在我的班上实现了KeyEvnet

我按如下方式分配了侦听器:

JTextfield searchBar = new JTextField();
searchBar.addKeyListener( this );
我的关键事件如下所示:

@Override
public void keyTyped(KeyEvent e) {
    if (e.getKeyCode() == KeyEvent.VK_ENTER) {
        System.out.println("pressed");
        try {
            int browser = getSelectBrowser().getSelectedIndex();
            logic.search( searchBar.getText(), searchInfo, browser, isURL );
        } catch (InterruptedException ie) {
            System.out.println( "Pressed fail" );
        }
        this.repaint();
    }
}
我还在第二个测试Gui中尝试了侦听器,但它也不起作用


:-)

使用“按键”代替“键入”。keyTyped仅在字母数字字符上侦听

当您按enter键时,将看不到调用此侦听器,因此永远不会调用您的
println
。在
JTextField
上按enter键将调用附加的
ActionListener
,如果有

要使其正常工作,请在文本字段中添加一个
ActionListener
,并在其中输入要在按下enter键时运行的代码


你可以阅读更多关于它的内容。感谢您在评论中对此进行链接。

“不起作用”不是可接受的问题描述。您是否尝试过将
System.out.println(…)
放在您的
if
之外?@Tiz System.out.println(…)只是检查它是否确实通过了侦听器;)它应该和println()一起工作。@itknocks是的,我知道。我的观点是,除非按enter键,否则您将看不到打印输出。将
println
置于
if
之外将告诉您是否为其他键调用了该方法。@Tiz-oh抱歉,我没有理解您的答案。当我把它放在“if”之外时,我按下的每一个键都会打印出一个0,使用“keyPressed”而不是“keyTyped”。keyTyped仅侦听字母数字字符