zoukankan      html  css  js  c++  java
  • e612. Moving the Focus to the Next or Previous Focusable Component

    The methods to move the focus to the next or to the previous focusable component are Component.transferFocus() and Component.transferFocusBackward().

    This example modifies a component so that pressing the space bar or pressing F2 moves the focus to the next focusable component. Pressing shift space or shift F2 moves the focus to the previous focusable component.

        // Bind space and shift space
        component.getInputMap(JComponent.WHEN_FOCUSED).put(
            KeyStroke.getKeyStroke("SPACE"), nextFocusAction.getValue(Action.NAME));
        component.getInputMap(JComponent.WHEN_FOCUSED).put(
            KeyStroke.getKeyStroke("shift SPACE"), prevFocusAction.getValue(Action.NAME));
        
        // This key binding is required for text components. It hides the
        // default typed space key binding in a text component. If you don't
        // hide this key binding, typing the space key will insert a space into
        // the text component (as well as move the focus).
        // See e1003 覆盖一些和JTextComponent绑定的键 for more details.
        component.getInputMap(JComponent.WHEN_FOCUSED).put(
            KeyStroke.getKeyStroke(new Character(' '), 0), "unbound");
        
        // Bind F2 and shift F2
        component.getInputMap(JComponent.WHEN_FOCUSED).put(
            KeyStroke.getKeyStroke("F2"), nextFocusAction.getValue(Action.NAME));
        component.getInputMap(JComponent.WHEN_FOCUSED).put(
            KeyStroke.getKeyStroke("shift F2"), prevFocusAction.getValue(Action.NAME));
        
        // Add actions
        component.getActionMap().put(nextFocusAction.getValue(Action.NAME), nextFocusAction);
        component.getActionMap().put(prevFocusAction.getValue(Action.NAME), prevFocusAction);
        
        // The actions
        public Action nextFocusAction = new AbstractAction("Move Focus Forwards") {
            public void actionPerformed(ActionEvent evt) {
                ((Component)evt.getSource()).transferFocus();
            }
        };
        public Action prevFocusAction = new AbstractAction("Move Focus Backwards") {
            public void actionPerformed(ActionEvent evt) {
                ((Component)evt.getSource()).transferFocusBackward();
            }
        };
    
    Related Examples
  • 相关阅读:
    htpasswd命令
    GitHub访问速度慢的解决方法
    easyui datagrid 首次不加载做法
    Excel日常操作
    补偿接口中循环一直执行sql的问题
    rabbitMq无法消费发送的q的问题
    Unicode与中文转换工具类方法(转)
    idea 一些插件配置
    线程安全的集合类、CopyOnWrite机制介绍(转)
    java websocket学习
  • 原文地址:https://www.cnblogs.com/borter/p/9596092.html
Copyright © 2011-2022 走看看