Java Swing |关键听众根本没有回应

时间:2016-04-04 13:06:30

标签: java swing keylistener

我试图让我的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中尝试了Listener,但它也没有用。

: - )

2 个答案:

答案 0 :(得分:0)

使用" keyPressed"而不是" keyTyped"。 keyTyped仅侦听字母数字字符

答案 1 :(得分:0)

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

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

您可以阅读更多相关信息here。感谢tak3shi在评论中将其链接起来。