Как использовать jnativehook со строкой / ключом, который я могу переопределить в любое время? - PullRequest
0 голосов
/ 10 февраля 2020

Я работаю над программой, в которой есть изменяемая горячая клавиша. В GUI вы определяете горячую клавишу запуска / остановки в JTextField, тогда оператор if будет работать, если JTextField соответствует нажатой клавише. Однако, это не похоже на работу.

@Override
public void nativeKeyPressed(NativeKeyEvent e) {

    runStrt0 = start0.getText(); //JTextFile String (I was using "X" for testing)

    if (NativeKeyEvent.getKeyText(e.getKeyCode()) == runStrt0) { //If The key I pressed matches my JTextField
        System.out.println(runStrt0); //Print out the JTextField (Just for testing)
    } else { //If it doesn't match
        System.out.println("'" + e.getKeyCode() + "'"); //Print the key I pressed
        System.out.println("'" + runStrt0 + "'"); //Print JTextField string
        }
}

Этот код возвращает это.

'X'
'X'

Это мне кажется правильным, так как это работает, когда я определяю строку в другой мои программы с предопределенной горячей клавишей.

    @Override
public void nativeKeyPressed(NativeKeyEvent e) {
    String ifState = "P";
    if (NativeKeyEvent.getKeyText(e.getKeyCode()) == ifState) {
        Thread thing2run = new Thread(new RunnableClass());
        thing2run.start();
    }
}

Это просто пример кода из другой моей программы. Это работает очень хорошо, когда я нажимаю «P». Так что же я делаю не так с первым кодом? Что мне нужно изменить, чтобы я мог изменить свою горячую клавишу на что угодно, просто набрав что-то новое в JTextField?

...