如何让文本控件响应回车事件
需求分析
当录入文本的时候想要按回车就进行提交,比如密码框输入完毕后按回车就执行提交操作。
实现步骤
添加KeyListener通过对这个文本控件添加KeyListener并监听回车事件来实现代码如下。
KDTextField searchField = new KDTextField(); searchField.addKeyListener(new KeyAdapter() { @Override public void keyPressed(KeyEvent e) { if (e.getKeyCode() == KeyEvent.VK_ENTER) //do something } });
通过ActionMap绑定Enter键实现,代码如下。
private static final KeyStroke ENTER = KeyStroke.getKeyStroke(KeyEvent.VK_ENTER, 0); KDTextField searchField = new KDTextField(); searchField.getInputMap().put(ENTER, ENTER); searchField.getActionMap().put(ENTER, new AbstractAction() { @Override public void actionPerformed(ActionEvent e) { //do something } });
由于GUI设置的统一的控件切换键为TAB和ENTER所以需要单独设置这个控件的切换键。
Set<KeyStroke> set = new HashSet<KeyStroke>(); set.add(KeyStroke.getKeyStroke(KeyEvent.VK_TAB, 0)); //由于默认的traversalkey为enter和tab重设为tab让后面注册的enter键生效 searchField.setFocusTraversalKeys(KeyboardFocusManager.FORWARD_TRAVERSAL_KEYS, set);
原理解析
JavaSwing在响应键盘事件时优先从这个控件的父级控件获取FoucusTraversalKeys,如果当前的KeyCode和里面一致则将事件消耗掉,所以控件在注册key事件时需要避免和这个切换键冲突。对于控件的操作也可以使用下面的工具类来完成。
com.kingdee.bos.ctrl.swing.util.CtrlSwingUtilitie
如何让文本控件响应回车事件
需求分析当录入文本的时候想要按回车就进行提交,比如密码框输入完毕后按回车就执行提交操作。实现步骤添加KeyListener通过对这个文本控件...
点击下载文档
上一篇:如何设置序时簿某一列的日期格式下一篇:EAS如何找到界面元数据和实现类
本文2024-09-22 20:37:24发表“eas cloud知识”栏目。
本文链接:https://wenku.my7c.com/article/kingdee-eas-114834.html
您需要登录后才可以发表评论, 登录登录 或者 注册
最新文档
热门文章