gpt4 book ai didi

java - 如何确保应用程序窗口在启动时可见?

转载 作者:行者123 更新时间:2023-11-30 02:42:57 26 4
gpt4 key购买 nike

我有一个通常在双显示器设置上运行的应用程序。我还在窗口退出时保存窗口的当前大小和位置,并在启动应用程序时再次加载它。

我的问题来自于其中一台显示器被移除或分辨率发生变化的情况。如果我保存窗口的 x 和 y 位置,并且它最后一次在现在不存在的监视器上可见,那么当程序再次启动时,它就看不见了。

这是我在 Main.java 中使用的代码:

double x = Settings.getWindowX();
double y = Settings.getWindowY();
double h = Settings.getWindowH();
double w = Settings.getWindowW();

primaryStage.setScene(mainScene);
primaryStage.setX(x);
primaryStage.setY(y);
primaryStage.setWidth(w);
primaryStage.setHeight(h);

我的目标是检查窗口是否位于可用监视器的可见边界内,如果不在,则将 x、y 重置为 100、100。

我不知道从哪里开始。

最佳答案

Screen API允许您检查您拥有的值是否在当前配置的范围内。

例如要测试是否存在与配置设置中保存的边界相交的物理图形设备,您可以执行以下操作:

double x = Settings.getWindowX();
double y = Settings.getWindowY();
double h = Settings.getWindowH();
double w = Settings.getWindowW();

primaryStage.setScene(mainScene);

if (Screen.getScreensForRectangle(x, y, w, h).isEmpty()) {

// no screen intersects saved values...
// just center on primary screen:

primaryStage.centerOnScreen();

} else {

primaryStage.setX(x);
primaryStage.setY(y);
primaryStage.setWidth(w);
primaryStage.setHeight(h);

}

关于java - 如何确保应用程序窗口在启动时可见?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41113552/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com