Java JButton Key Event setButtonKeyStroke(final JButton button, KeyStroke keyStroke)

Here you can find the source of setButtonKeyStroke(final JButton button, KeyStroke keyStroke)

Description

set Button Key Stroke

License

Open Source License

Parameter

Parameter Description
button a parameter
keyStroke a parameter

Declaration

public static void setButtonKeyStroke(final JButton button, KeyStroke keyStroke) 

Method Source Code

//package com.java2s;
/*/*from w  w  w  .  j  a v  a  2  s . c om*/
 * Copyright (C) 2011 Trilarion
 *
 * This program is free software: you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program.  If not, see <http://www.gnu.org/licenses/>.
 */

import java.awt.event.ActionEvent;

import javax.swing.AbstractAction;
import javax.swing.Action;
import javax.swing.ActionMap;

import javax.swing.InputMap;
import javax.swing.JButton;
import javax.swing.JComponent;
import javax.swing.KeyStroke;

public class Main {
    /**
     *
     */
    private static final String KEYID = "scrambledEggs";

    /**
     *
     * @param button
     * @param keyStroke
     */
    public static void setButtonKeyStroke(final JButton button, KeyStroke keyStroke) {
        Action action = new AbstractAction() {
            private static final long serialVersionUID = 1L;

            @Override
            public void actionPerformed(ActionEvent e) {
                if (button != null) {
                    button.doClick();
                }
            }
        };
        setKeyStroke(button, keyStroke, action);
    }

    /**
     *
     * @param component
     * @param keyStroke
     * @param action
     */
    public static void setKeyStroke(JComponent component, KeyStroke keyStroke, Action action) {
        InputMap inputMap = component.getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW);
        if (inputMap != null) {
            ActionMap actionMap = component.getActionMap();
            inputMap.put(keyStroke, KEYID);
            if (actionMap != null) {
                actionMap.put(KEYID, action);
            }
        }
    }
}

Related

  1. addFastKeys(JButton[] buttonList)
  2. makeJButton(ResourceBundle resource, String panelName, String keyword, Icon icon, ActionListener listener)