[英]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.