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
  • 相关阅读:
    Ubuntu安装Cassandra
    Ubuntu安装中文输入法
    CoreOS, Kubernetes, etcd
    CountDownLatch, CyclicBarrier and Semaphore
    Java Primitives and Bits
    vue 和 webstorm(01) 之 基本入门 _fei
    ubuntu 命令窗口背景颜色 #300a24 _fei
    2345 看图王ad介绍----关闭广告 _fei
    PHP 使用 pdo 操作oracle数据库 报错 _fei
    PHP 使用 pdo 操作oracle数据库 报错 _fei
  • 原文地址:https://www.cnblogs.com/borter/p/9596092.html
Copyright © 2011-2022 走看看