我使用以下代码打开一个舞台:
ObservableList<Screen> screens = Screen.getScreens();
if(screens.size()>1){
Rectangle2D rec = screens.get(preferredScreen).getVisualBounds();
stage.setX(rec.getMinX());
stage.setY(rec.getMinY());
}
当从主屏幕的窗口调用它时,这非常有效。
当从非主屏幕调用此屏幕时,舞台将在首选屏幕上打开,然后跳转到鼠标所在的屏幕。
我觉得自己是Windows&#34;功能&#34;。将此窗口设置到右侧屏幕的最佳方法是什么?
答案 0 :(得分:0)
根据Screen的JavaDoc,您应该相对于主屏幕设置新阶段,因为您只扩展了桌面。所以你应该写这样的东西:
int preferredScreen = 1;
double offsetX = 0;
double offsetY = 0;
Rectangle2D primaryScreenBounds = Screen.getPrimary().getVisualBounds();
ObservableList<Screen> screens = Screen.getScreens();
if(screens.size()>1){
Rectangle2D rec = screens.get(preferredScreen).getVisualBounds();
// upper left corner of the extended screen
offsetX = rec.getMinX();
offsetY = rec.getMinY();
// set relative to this screen
stage.setX(primaryScreenBounds.getMinX() + offsetX);
stage.setY(primaryScreenBounds.getMinY() + offsetY);
}
我自己无法测试,我只有一台显示器。