java 图形化工具Swing 监听键盘输入字符触发动作getInputMap();getActionMap();
2021/5/9 1:25:43
本文主要是介绍java 图形化工具Swing 监听键盘输入字符触发动作getInputMap();getActionMap();,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
双缓冲技术的介绍:
所有的Swing组件默认启用双缓冲绘图技术。使用双缓冲技术能改进频繁重绘GUI组件的显示效果(避免闪烁现象)JComponent组件默认启用双缓冲,无须自己实现双缓冲。如果想关闭双缓冲,可以在组件上调用setDoubleBuffered(false)方法。同学们无需深究双缓冲技术原理是怎么实现的,就记住有这么个技术就好了。简单键盘驱动:
所有的Swing组件都提供了简单的键盘驱动。JComponent类提供了getInputMap()和getActionMap()两个方法。 其中 getInputMap()返回一个InputMap对象,该对象用于将 KeyStroke对象(代表键盘或其他类似输入设备的一次输入事件)和名字关联; getActionMap() 返回一个ActionMap对象,该对象用于将指定名字和Action (Action接口是ActionListener接口的子接口,可作为一个事件监昕器使用)关联,从而可以允许用户通过键盘操作来替代鼠标驱动GUI上的Swing组件,相当于为GUI组件提供快捷键。
示例代码:
/** * 文本框输入内容绑定事件 */ 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); } }
这篇关于java 图形化工具Swing 监听键盘输入字符触发动作getInputMap();getActionMap();的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-26Mybatis官方生成器资料详解与应用教程
- 2024-11-26Mybatis一级缓存资料详解与实战教程
- 2024-11-26Mybatis一级缓存资料详解:新手快速入门
- 2024-11-26SpringBoot3+JDK17搭建后端资料详尽教程
- 2024-11-26Springboot单体架构搭建资料:新手入门教程
- 2024-11-26Springboot单体架构搭建资料详解与实战教程
- 2024-11-26Springboot框架资料:新手入门教程
- 2024-11-26Springboot企业级开发资料入门教程
- 2024-11-26SpringBoot企业级开发资料详解与实战教程
- 2024-11-26Springboot微服务资料:新手入门全攻略