Как вызвать событие в Приложении JavaFX (Этап), когда на KeyBoard нажимаются некоторые клавиши? - PullRequest
0 голосов
/ 01 мая 2019

Я пытаюсь настроить бэкдор в приложении, над которым я работаю.

Я хочу загрузить новое окно, когда пользователь нажимает "CTRL + ALT + F12".Это то, что я пробовал до сих пор, хотя это ужасно плохо.

//packages
import java.awt.EventQueue;
import java.awt.KeyEventDispatcher;
import java.awt.KeyboardFocusManager;

//...
private void setupBackPass(){
        HashMap<KeyStroke, Action> actionMap = new HashMap<KeyStroke, Action>();
        KeyStroke key1 = KeyStroke.getKeyStroke(KeyEvent.ALT, KeyEvent.CTRL_DOWN_MASK);
        actionMap.put(key1, new AbstractAction("action1") {
            @Override
            public void actionPerformed(ActionEvent e) {
                System.out.println("Ctrl-ALT pressed: " +e);
            }
        });


        KeyboardFocusManager kfm = KeyboardFocusManager.getCurrentKeyboardFocusManager();
        kfm.addKeyEventDispatcher(new KeyEventDispatcher() {
            @Override
            public boolean dispatchKeyEvent(KeyEvent e) {
                KeyStroke keyStroke = KeyStroke.getKeyStrokeForEvent(e);
                if(actionMap.containsKey(keyStroke)){
                final Action a = actionMap.get(keyStroke);
                final ActionEvent ae = new ActionEvent(e.getSource(), e.getID(), null);
                EventQueue.invokeLater(new Runnable() {
                @Override
                public void run() {

                }
                });

                return false;
                }
            });
        });


    }


Я не уверен, как это сделать, но мне бы хотелось, чтобы при нажатии клавиш открывалось окно Super admin.

1 Ответ

0 голосов
/ 02 мая 2019

Из кода, который вы разместили, похоже, что вы используете Swing и , а не JavaFX.Также похоже, что вы пытаетесь использовать привязки клавиш .Как объяснено в этой ссылке, вам нужно изменить и карту ввода , и карту действия .Кроме того, вы не создаете карту действий, вы используете существующую.Опять же, это объясняется на странице, на которую я дал ссылку.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...