Java JFrame attachAccelerator(Action action, JFrame frame)

Here you can find the source of attachAccelerator(Action action, JFrame frame)

Description

attach Accelerator

License

EUPL

Declaration

public static void attachAccelerator(Action action, JFrame frame) 

Method Source Code


//package com.java2s;
/*//  w  w  w.  j  a v a2s . c o  m
 * Copyright 2011, 2012 Delving BV
 *
 *  Licensed under the EUPL, Version 1.0 or? as soon they
 *  will be approved by the European Commission - subsequent
 *  versions of the EUPL (the "Licence");
 *  you may not use this work except in compliance with the
 *  Licence.
 *  You may obtain a copy of the Licence at:
 *
 *  http://ec.europa.eu/idabc/eupl
 *
 *  Unless required by applicable law or agreed to in
 *  writing, software distributed under the Licence is
 *  distributed on an "AS IS" BASIS,
 *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
 *  express or implied.
 *  See the Licence for the specific language governing
 *  permissions and limitations under the Licence.
 */

import javax.swing.*;

import java.awt.event.KeyEvent;

public class Main {
    public static void attachAccelerator(Action action, JFrame frame) {
        KeyStroke stroke = (KeyStroke) action.getValue(Action.ACCELERATOR_KEY);
        String name = (String) action.getValue(Action.NAME);
        JComponent component = (JComponent) frame.getContentPane();
        component.getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW).put(stroke, name);
        component.getActionMap().put(name, action);
        addStrokeToName(action);
    }

    public static void attachAccelerator(Action action, JComponent component) {
        KeyStroke stroke = (KeyStroke) action.getValue(Action.ACCELERATOR_KEY);
        String name = (String) action.getValue(Action.NAME);
        component.getInputMap(JComponent.WHEN_FOCUSED).put(stroke, name);
        component.getActionMap().put(name, action);
        addStrokeToName(action);
    }

    public static void addStrokeToName(Action action) {
        KeyStroke stroke = (KeyStroke) action.getValue(Action.ACCELERATOR_KEY);
        if (stroke == null)
            return;
        String name = String.format("%s%s - %s", KeyEvent.getKeyModifiersText(stroke.getModifiers()),
                KeyEvent.getKeyText(stroke.getKeyCode()), action.getValue(Action.NAME));
        action.putValue(Action.NAME, name);
    }
}

Related

  1. addPanelToFrame(final JFrame frame, final JPanel panel, final String title)
  2. addProgressBar(final JFrame win)
  3. addToQue(JFrame frame)
  4. allPlatformGetFile(String dialogTitle, File locationIn, final String fileExtension, FileFilter nonMacFileFilter, boolean allowMultipleSelect, JFrame parentFrame)
  5. askSave(JFrame frame)
  6. btnMnemonicAndToolTip(JFrame frame, JButton a, JButton b, JButton c, JButton e, JButton h, JButton i, JButton l, JButton m, JButton o, JButton p, JButton s, JButton t, JButton enter, JButton altEnter)
  7. buildButton(String btnName, JFrame frame, int x, int y, int w, int h)
  8. buildLabel(JFrame frame, String txt, int x, int y, int w, int h)
  9. buildTxtField(JFrame frame, int x, int y, int w, int h)