如何让文本控件响应回车事件

栏目:eas cloud知识作者:金蝶来源:金蝶云社区发布:2024-09-22浏览:1

如何让文本控件响应回车事件

  1. 需求分析

    当录入文本的时候想要按回车就进行提交,比如密码框输入完毕后按回车就执行提交操作。

  2. 实现步骤

    添加KeyListener通过对这个文本控件添加KeyListener并监听回车事件来实现代码如下。

  3. KDTextField searchField = new KDTextField();
    searchField.addKeyListener(new KeyAdapter()
    		{
    			@Override
    			public void keyPressed(KeyEvent e)
    			{
    				if (e.getKeyCode() == KeyEvent.VK_ENTER)
    					//do something
    			}
    		});

    通过ActionMap绑定Enter键实现,代码如下。

  4. 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所以需要单独设置这个控件的切换键。

  5. 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);
  6. 原理解析

    JavaSwing在响应键盘事件时优先从这个控件的父级控件获取FoucusTraversalKeys,如果当前的KeyCode和里面一致则将事件消耗掉,所以控件在注册key事件时需要避免和这个切换键冲突。对于控件的操作也可以使用下面的工具类来完成。

  7. com.kingdee.bos.ctrl.swing.util.CtrlSwingUtilitie


如何让文本控件响应回车事件

需求分析当录入文本的时候想要按回车就进行提交,比如密码框输入完毕后按回车就执行提交操作。实现步骤添加KeyListener通过对这个文本控件...
点击下载文档
确认删除?
回到顶部
客服QQ
  • 客服QQ点击这里给我发消息