[英]JavaFX global keyboard listener
我有一個 JavaFX 應用程序,當應用程序在后台或最小化時,它需要偵聽 ctrl+space+T 以將應用程序窗口置於最前面。 我可以知道是否有人有解決方案嗎?
public class MainApp extends Application {
@Override
public void start(Stage primaryStage) {
primaryStage = setStagePositionToBottomRight(primaryStage);
loadAndStartMainScreen(primaryStage);
}
private void loadAndStartMainScreen(Stage primaryStage) {
MainViewController scenes = new MainViewController();
AnchorPane mainScene = scenes.getMainView();
Scene scene = new Scene(mainScene);
primaryStage.setScene(scene);
primaryStage.show();
}
private Stage setStagePositionToBottomRight(Stage primaryStage) {
final int coordinateX = 335;
final int coordinateY = 510;
Rectangle2D primaryScreenBounds = Screen.getPrimary().getVisualBounds();
// primaryStage.initStyle(StageStyle.UNDECORATED);
primaryStage.setX(primaryScreenBounds.getMaxX() - coordinateX);
primaryStage.setY(primaryScreenBounds.getMaxY() - coordinateY);
return primaryStage;
}
public static void main(String[] args) {
launch(args);
}
}
我認為您的要求無法在純 Java 中實現,您需要一些本機代碼來實現這一點。
如果您不想自己編寫所有內容並且您的應用程序在 Windows 上運行,您可以查看提供全局熱鍵功能的JIntellitype 。
對於任何有類似問題的人:
通過偵聽所有用戶輸入,您可以簡單地偵聽所需的鍵組合,但這需要額外的庫。 認為這不是一個好的解決方案,它是一個有效的解決方案。
鏈接 #1:關於 Java 中的全局事件偵聽器和鏈接 #2 的來源
鏈接 #2:具有 Windows、Linux、MacOS X 所需功能的庫
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.