Java – JTextField – 当用户按“空格键”时调用函数

我做了一些搜索,当用户按下“空格键”键时我没有找到如何调用函数,我有这样的代码:

edtCodigos.addKeyListener(new KeyAdapter() { public void keyPressed(KeyEvent e) { if (e.getKeyCode() == KeyEvent.VK_SPACE){ callFunction(); } } )}; 

注意:我想避开“空格”,该键只用于调用该函数

任何想法我怎么能这样做或代码样品将不胜感激;)

“用户习惯输入”空格键“来完成收银员付款等操作。”

就个人而言,我只会使用ActionListener以便Enter键触发事件。 它看起来更自然。

 import java.awt.event.*; import javax.swing.*; public class TestTextField { public static void main(String[] args) { final JTextField field = new JTextField(15); field.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent e) { System.out.println("Enter Pressed: " + field.getText()); } }); JOptionPane.showMessageDialog(null, field); } } 

如果要使用Space ,可以使用Key Bindings将键绑定到该字段

 import java.awt.event.ActionEvent; import javax.swing.*; public class TestTextField { public static void main(String[] args) { final JTextField field = new JTextField(15); InputMap imap = field.getInputMap(JComponent.WHEN_FOCUSED); imap.put(KeyStroke.getKeyStroke("SPACE"), "spaceAction"); ActionMap amap = field.getActionMap(); amap.put("spaceAction", new AbstractAction(){ public void actionPerformed(ActionEvent e) { System.out.println("Space Pressed: " + field.getText()); } }); JOptionPane.showMessageDialog(null, field); } } 

您甚至可以使用DocumentListener来监听文本字段的基础文档中的更改,并检查输入的最后一个字符是否为空格(但这看起来有点多 – 只是一些信息供您学习工作对于文本组件:-)

选择你的味道。 我喜欢第一个。