JAVAFX:我有一个应用程序,它生成一个我在舞台上创建的模态弹出对话框,并将我的应用程序阶段作为新popover阶段的所有者。当我运行应用程序并将其移动到我的扩展监视器时,弹出窗口仍然出现在我的主监视器上。
这是我的代码片段:
BorderPane borderPane = new BorderPane();
Scene currentScene=new Scene(borderPane,1015,175);
Stage popoverStage= new Stage();
popoverStage.initModality(modality);
popoverStage.alwaysOnTopProperty();
popoverStage.initStyle(StageStyle.TRANSPARENT);
popoverStage.initOwner(control.getParent().getScene().getWindow());
Bounds currentMouseLocation=control.localToScene(control.getBoundsInLocal());
double popOverX=(currentMouseLocation.getMinX()+currentMouseLocation.getMaxX())/2;
double popOverY=(currentMouseLocation.getMinY()+currentMouseLocation.getMaxY())/2;
popoverStage.setX(popOverX);
popoverStage.setY(popOverY);
popoverStage.setScene(currentScene);
popoverStage.show();
答案 0 :(得分:1)
setX()
的{{1}}和setY()
方法期望 screen 坐标系中指定的坐标。您从当前场景坐标系传递坐标。
替换
Stage
与
Bounds currentMouseLocation=control.localToScene(control.getBoundsInLocal());