当按下键盘上的某些键时,如何在 JavaFX 应用程序(舞台)中触发事件?

How to trigger an event in a JavaFX Application (Stage) when some keys are pressed on the KeyBoard?

我正在尝试在我正在处理的应用程序上设置后门。

我想在用户按下 "CTRL + ALT + F12" 时加载新的 Window。 这是我到目前为止尝试过的方法,尽管它非常糟糕。

//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;
                }
            });
        });


    }


我不确定该怎么做,但我希望如果按下按键,则应该打开一个超级管理员 window。

从您发布的代码看来,您使用的是 Swing 不是 JavaFX。看起来您也在尝试使用 Key Bindings。如 link 中所述,您需要同时修改 输入映射 动作映射 。此外,您不创建动作图,而是使用现有的动作图。同样,在我提供 link 的页面中对此进行了解释。