从KeyEvent或任何其他侦听器中调用ActionEvent

时间:2013-11-06 05:23:48

标签: java swing user-interface actionlistener keylistener

基本上,我希望当用户按下ENTER键(由其ASCII检查)时,应该创建ActionEvent对象并调用其actionPerformed,即触发我自己的动作事件。请提供所需的语法 thnx! :

3 个答案:

答案 0 :(得分:3)

“我应该手动调用ActionEvent,以便将控件转移到actionPerformed”

不,你不应该。您不应该在文本字段上使用KeyListener。如果您有兴趣知道用户何时“操作”该字段,只需在字段中添加ActionListener

您还可以使用JRootPane#setDefaultButton,可以在发生UI特定激活事件时触发按钮

答案 1 :(得分:2)

对于每个帧,您可以设置一个默认按钮,该按钮将自动侦听Enter键。当您在该帧中按Enter键时,将调用actionPerformed()方法。

frame.getRootPane().setDefaultButton(Button);

见: -

Allowing the "Enter" key to press the submit button, as opposed to only using MouseClick

http://docs.oracle.com/javase/7/docs/api/javax/swing/JRootPane.html#setDefaultButton%28javax.swing.JButton%29

关于

的Ajay

答案 2 :(得分:0)

如果你的框架有很多按钮,请使用这样的。 检查你的密钥ascii并确定它是ENTER或ESC。 并使用此代码

ok.doClick(); or cancel.doClick();

好的,取消是按钮,动作会自动调用。