Java 如何在外部监视器上打开新阶段?
我的笔记本电脑上插了一个外置显示器。我想在此外部屏幕上以全屏、无装饰和模式模式显示一个新的Java 如何在外部监视器上打开新阶段?,java,javafx,external-display,Java,Javafx,External Display,我的笔记本电脑上插了一个外置显示器。我想在此外部屏幕上以全屏、无装饰和模式模式显示一个新的阶段。我知道如何在纯Java/Swing组合中实现所有这些,但我对这种功能的JavaFX实现感到厌倦 我知道,有一个ScreenAPI,我可以使用它来获取屏幕列表,比如: List allScreens=Screen.getScreens() …但我不知道我能从这里走到哪里 更新:2014/08/03,22:21 我已经找到了解决问题的方法,所以我决定分享我的方法。到目前为止,我还没有找到更好的解决办法 B
阶段。我知道如何在纯Java/Swing组合中实现所有这些,但我对这种功能的JavaFX实现感到厌倦
我知道,有一个Screen
API,我可以使用它来获取屏幕列表,比如:
List allScreens=Screen.getScreens()代码>
…但我不知道我能从这里走到哪里
更新:2014/08/03,22:21
我已经找到了解决问题的方法,所以我决定分享我的方法。到目前为止,我还没有找到更好的解决办法
Button.setOnAction(new EventHandler<ActionEvent>() {
@Override
public void handle(ActionEvent ae) {
List<Screen> allScreens = Screen.getScreens();
if (allScreens.size() > 1) {
Screen secondaryScreen = allScreens.get(1);
Rectangle2D bounds = secondaryScreen.getVisualBounds();
Stage stage = new Stage();
stage.setX(bounds.getMinX());
stage.setY(bounds.getMinY());
stage.setWidth(bounds.getWidth());
stage.setHeight(bounds.getHeight());
stage.initStyle(StageStyle.UNDECORATED);
stage.initModality(Modality.APPLICATION_MODAL);
stage.show();
} else {
Stage stage = new Stage();
stage.setFullScreen(true);
stage.initStyle(StageStyle.UNDECORATED);
stage.initModality(Modality.APPLICATION_MODAL);
stage.show();
}
}
});
Button.setOnAction(新的EventHandler(){
@凌驾
公共无效句柄(ActionEvent ae){
List allScreens=Screen.getScreens();
如果(allScreens.size()>1){
Screen secondary Screen=allScreens.get(1);
矩形2D边界=secondaryScreen.getVisualBounds();
阶段=新阶段();
stage.setX(bounds.getMinX());
stage.setY(bounds.getMinY());
stage.setWidth(bounds.getWidth());
stage.setHeight(bounds.getHeight());
舞台风格(舞台风格。未装饰);
阶段.初始模态(模态.应用\模态);
stage.show();
}否则{
阶段=新阶段();
stage.setFullScreen(真);
舞台风格(舞台风格。未装饰);
阶段.初始模态(模态.应用\模态);
stage.show();
}
}
});
您正完美地使用它!