我有一个 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实现,你需要一些 native 代码来完成这个。
如果您不想自己编写所有内容并且您的应用程序在 Windows 上运行,您可以查看 JIntellitype提供全局热键功能。
关于JavaFX 全局键盘监听器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19768614/