示例代码:
/** * 文本框输入内容绑定事件 */ jTextField.getInputMap().put(KeyStroke.getKeyStroke('\n'),"send"); // 绑定获取到输入字符为\n即回车键,对应别名为“send" jTextField.getActionMap().put("send",sendListener); //指定别名对应触发的监听器 /**完整代码
package swingtest; import javax.swing.*; import java.awt.*; import java.awt.event.ActionEvent; import java.io.FileFilter; /** * @ClassName BindingKeyTest * @projectName: object1 * @author: Zhangmingda * @description: XXX * date: 2021/5/8. */ public class BindingKeyTest { public static void main(String[] args) { JFrame jFrame = new JFrame("测试键盘驱动"); /** * 文本框 */ JTextArea jTextArea = new JTextArea(10,60); JScrollPane jScrollPane = new JScrollPane(jTextArea); jFrame.add(jScrollPane); /** * 输入框 和发送按钮 */ JTextField jTextField = new JTextField(50); JButton sendButton = new JButton("发送"); JPanel bottomJPanel = new JPanel(); bottomJPanel.add(jTextField); bottomJPanel.add(sendButton); jFrame.add(bottomJPanel, BorderLayout.SOUTH); /** * 发送按钮或者回车要绑定的事件 */ Action sendListener = new AbstractAction() { @Override public void actionPerformed(ActionEvent actionEvent) { jTextArea.append(jTextField.getText() + "\n"); jTextField.setText(null); } }; //发送按钮绑定事件 sendButton.addActionListener(sendListener); /** * 文本框输入内容绑定事件 */ jTextField.getInputMap().put(KeyStroke.getKeyStroke('\n'),"send"); // 绑定获取到输入字符为\n即回车键,对应别名为“send" jTextField.getActionMap().put("send",sendListener); //指定别名对应触发的监听器 /** * jFrame位置、大小和关闭按钮设置 */ jFrame.setLocation(400,300); jFrame.pack(); jFrame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);; jFrame.setVisible(true); } }