Java Swing |键侦听器根本没有响应
我正在努力让我的KeyEvent工作。遗憾的是,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
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仅侦听字母数字字符