Swing - Как добавить Crtl + JButton click - PullRequest
0 голосов
/ 28 сентября 2018

Я хочу добавить опцию быстрого доступа с использованием клавиши Ctrl + + 1003 *, щелкнув мышью на простом калькуляторе.Я знаю, как вводить Ctrl + C , используя KeyStroke, но я не знаю, как это сделать щелчком JButton с помощью мыши.Вот что у меня есть:

private void displayCopyRight() {
    buttons[13].setAction(new AbstractAction("" + button_Shapes[13]) {
        {
            putValue(Action.ACTION_COMMAND_KEY, getValue(Action.NAME));
        }

        public void actionPerformed(ActionEvent e){
            display.setText("[c] Khoa-Nguyen");
        }
    });

    int c = JComponent.WHEN_IN_FOCUSED_WINDOW;
    KeyStroke ks = KeyStroke.getKeyStroke(KeyEvent.VK_C, InputEvent.CTRL_DOWN_MASK);
    buttons[13].getInputMap(c).put(ks, button_Shapes[13]);
    buttons[13].getActionMap().put(button_Shapes[13], buttons[13].getAction());        
}

Это только связывает Ctrl + буква C на клавиатуре.Что я хочу сделать, это связать Ctrl + JButton click с помощью мыши.Кнопки [13] - это буква C как кнопка J.Пожалуйста, помогите.

1 Ответ

0 голосов
/ 01 октября 2018

Вы можете попробовать проверить свойство модификаторов ActionEvent.Это поле маски. Если удерживается клавиша Ctrl , тогда поле модификаторов можно проверить на ActionEvent.CTRL_MASK.

public void actionPerformed(ActionEvent e){
   if ((ActionEvent.CTRL_MASK & e.getModifiers()) != 0){
      // Do your action here
   }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...