我进行了一些搜索,但是当用户按下“空格键”键时,我没有找到如何调用函数的命令,我得到了以下代码:
edtCodigos.addKeyListener(new KeyAdapter() { public void keyPressed(KeyEvent e) { if (e.getKeyCode() == KeyEvent.VK_SPACE){ callFunction(); } } )};
注意:我想避免使用“空格”,该键将仅用于调用该函数
任何想法我怎么做或代码示例将不胜感激;)
“用户习惯于键入“空格键”来完成诸如在收银员处付款之类的操作。”
就个人而言,我只需要使用一个ActionListener使Enter键触发事件即可。看起来更自然。
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,可以使用“ 键绑定”将键绑定到字段
Space
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侦听文本字段的基础文档中的更改,并检查最后输入的字符是否为空格(但这似乎有点多- 只是一些信息供您学习工作原理对于文本组件:-)
选择你的口味。我喜欢第一个。