tulskiy / jkeymaster

A library for registering global hotkeys in java with JNA. The goal is to support X11-based platforms, Windows and MacOSX
GNU Lesser General Public License v3.0
234 stars 45 forks source link

NullPointerException at KeyMap.java:71 with JavaFX on Windows 10 #37

Closed HeyHouBenjo closed 4 years ago

HeyHouBenjo commented 4 years ago

If I start my JavaFX application this way:

public void start(Stage primaryStage) throws Exception{
  Parent root = FXMLLoader.load(getClass().getResource("sample.fxml"));
  primaryStage.setTitle("Hello World");
  primaryStage.setScene(new Scene(root, 300, 275));
  primaryStage.show();

  Provider provider = Provider.getCurrentProvider(true);
  provider.register(KeyStroke.getKeyStroke("control shift b"), this::onHotkeyPressed);
}

public void onHotkeyPressed(HotKey hotKey){
  System.out.println(hotKey.toString());
}

...I get this error:

Apr. 08, 2020 11:44:33 AM com.tulskiy.keymaster.windows.WindowsProvider$1 run INFO: Starting Windows global hotkey provider Exception in thread "Thread-3" java.lang.NullPointerException at com.tulskiy.keymaster.windows.KeyMap.getCode(KeyMap.java:71) at com.tulskiy.keymaster.windows.WindowsProvider.register(WindowsProvider.java:101) at com.tulskiy.keymaster.windows.WindowsProvider.access$700(WindowsProvider.java:39) at com.tulskiy.keymaster.windows.WindowsProvider$1.run(WindowsProvider.java:82) at java.base/java.lang.Thread.run(Thread.java:830)

Do I miss anything obvious?

Thanks

HeyHouBenjo commented 4 years ago

Okay I found the issue: Characters in the keystroke String must be capitalized. "control shift b" -> "control shift B"