我有一个具有这些属性的舞台
stage = new Stage(StageStyle.DECORATED);
stage.setFullScreen(true);
stage.setFullScreenExitHint("");
stage.setTitle("My App");
stage.getIcons().add(new Image(icon-address));
FXMLLoader fxmlLoader = new FXMLLoader(getClass().getResource("start.fxml"));
fxmlLoader.setController(this);
...
...//and other properties
这个阶段在full screen
。我有一个button
,每次点击它时,都会调用另一个类的方法,并将该阶段的引用传递给它。
例如,如果我有两个类Start
和ButtonClicked
在开始时,我有这个:
Button.setOnAction(new EventHandler<ActionEvent>() {
@Override
public void handle(ActionEvent event) {
buttonClicked a = new buttonClicked ();
try {
a.render(stage);
} catch (Exception ex) {
Logger.getLogger(menuController.class.getName())
.log(Level.SEVERE, null , ex);
}
}
});
现在,调用render方法,我在render中有以下代码:
FXMLLoader fxmlLoader = new FXMLLoader(getClass().getResource("buttonclicked.fxml"));
fxmlLoader.setController(this);//set Controller for our fxml file
loader = fxmlLoader.load();//loader is a stackPane because buttonclick.fxml has stackPane
stage.setScene(new Scene(loader));
stage.setFullScreen(true);
...
问题是,如果用户点击按钮,则舞台变为1024x700(因为我在start.fxml和buttonclicked.fxml中有图片。图片的大小为1024x700
过了一会儿,它变成了全屏。我该如何解决这个问题?
我想杀掉全屏延迟
由于
答案 0 :(得分:1)
尝试
stage.getScene().setRoot(loader);
在渲染方法中。
通过这样做,消除了新场景的创建。因此,我猜想,在场景显示之后必须进行的一些与UI相关的更新和计算也被消除了。