簡體   English   中英

stage.setIconify(true)不適用於未裝飾的舞台

[英]stage.setIconify(true) doesn't work with undecorated stage

我有一個未經修飾的FXML階段。 我創建了一個用於最小化窗口的按鈕,並在initialize方法的Controller類中為其創建了一個事件。

minimizeBtn.setOnAction(e -> {


            Stage stage = (Stage)((Button)e.getSource()).getScene().getWindow();
            stage.setIconified(true);
            System.out.println(stage.isIconified());
        });

問題:

isIconified()返回true ,而視覺上沒有任何變化。

如果我從UNDECORATED切換到默認設置,則我的自定義按鈕可以正常使用。

在MacOS High Sierra和Mojave上,對於jdk 11.0.2和JavaFX 12.0.1來說,我遇到同樣的問題。有示例代碼可以重現該問題。
請注意,如果未將UNDECORATED樣式設置為舞台,則不會發生此問題。
在Windows上,無論舞台樣式是什么,行為都是正確的。

public class DemoApplication extends Application {

  @Override
  public void start(Stage primaryStage) {
      Button minimize = new Button("MINIMIZE");
      minimize.setOnAction(event -> primaryStage.setIconified(true));
      primaryStage.initStyle(StageStyle.UNDECORATED);

      Scene scene = new Scene(new StackPane(minimize));
      primaryStage.setTitle("JavaFX App");
      primaryStage.setWidth(960);
      primaryStage.setHeight(600);
      primaryStage.setScene(scene);
      primaryStage.show();
  }

  public static void main(String[] args) {
      launch(args);
  }

}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM