1

我有以下代码在单击最大化按钮时最大化窗口(标题栏中的绿色按钮)。但是,在最大化位置再次单击它时,它不会恢复到原始大小 (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());
        }
    });

如何恢复原来的位置?再次单击最大化按钮时不会触发“更改”方法,否则我会以编程方式设置原始大小。

4

2 回答 2

0

以下代码可以很好地监听 a 的最大化状态Stage

primaryStage.maximizedProperty().addListener((w,o,n)->System.out.println(n));

正在使用自定义(未装饰)Stage,那么您可能想看看已经完成此操作的Undecorator 。

于 2015-01-29T09:55:29.580 回答
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);
    }

希望对看到这篇文章的人有所帮助

于 2019-04-23T05:25:56.880 回答