“用户习惯于键入“空格键”来完成诸如在收银员处付款之类的操作。”
就个人而言,我只需要使用一个
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,可以使用“
键绑定”将键绑定到字段
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侦听文本字段的基础文档中的更改,并检查最后输入的字符是否为空格(但这似乎有点多-
只是一些信息供您学习工作原理对于文本组件:-)
选择你的口味。我喜欢第一个。



