我有以下代码,当单击最大化按钮时,窗口最大化(标题栏中的绿色按钮)。但是,在最大化位置再次单击时,它不会恢复到原始大小(900x600)。我看到只有左侧缩小了。
//set the original size
final Scene homeScene = new Scene(homePane,900,600);
...
primaryStage.maximizedProperty().addListener(new ChangeListener<Boolean>() {
@Override
public void changed(ObservableValue<? extends Boolean> ov, Boolean t, Boolean t1) {
primaryStage.setX(bounds.getMinX());
primaryStage.setY(bounds.getMinY());
primaryStage.setWidth(bounds.getWidth());
primaryStage.setHeight(bounds.getHeight());
}
});
如何取回原来的位置?再次单击最大化按钮时不会触发“已更改”方法,否则我将以编程方式设置原始大小。
答案 0 :(得分:0)
以下代码可以很好地监听Stage
的最大化状态:
primaryStage.maximizedProperty().addListener((w,o,n)->System.out.println(n));
正在使用自定义(未修饰)Stage
,那么您可能需要查看已完成此操作的Undecorator。
答案 1 :(得分:0)
我使用了这段代码
@FXML
private void btnMaximize(MouseEvent event) {
Stage s = (Stage) borderpane.getScene().getWindow();
s.setFullScreen(true);
}
@FXML
private void btnRestoreDown(MouseEvent event) {
Stage s = (Stage) borderpane.getScene().getWindow();
s.setFullScreen(false);
}
希望它可以帮助看到此帖子的人