Я работаю с последним JDK: 1.8.0_102, но также не смог выполнить 1.8.0_45. Вот моя простая программа для репликации проблемы. Шаги для воспроизведения:JavaFX Stage.setMaximized работает только один раз на Mac OSX (10.9.5)
- Запуск программы
- Нажмите Maximize (это максимально корректно)
- Нажмите Восстановить (это будет "unmaximize" правильно)
Нажмите снова Максимизация (он не будет ничего делать) ,
import javafx.application.Application; import javafx.event.ActionEvent; import javafx.event.EventHandler; import javafx.scene.Scene; import javafx.scene.control.Button; import javafx.scene.layout.VBox; import javafx.stage.Stage; public class TestApplication extends Application { @Override public void start(Stage primaryStage) throws Exception { VBox pane = new VBox(); Button maximizeButton = new Button("Maximize"); pane.getChildren().add(maximizeButton); Button restoreButton = new Button("Restore"); pane.getChildren().add(restoreButton); maximizeButton.setOnAction(new EventHandler<ActionEvent>() { @Override public void handle(ActionEvent event) { primaryStage.setMaximized(true); } }); restoreButton.setOnAction(new EventHandler<ActionEvent>() { @Override public void handle(ActionEvent event) { primaryStage.setMaximized(false); } }); primaryStage.setScene(new Scene(pane)); primaryStage.show(); } public static void main(String[] args) { launch(args); } }
Я вызываю setMaximized (false) в restoreButton.setOnAction, который был частью шагов для воспроизведения. Должен ли я делать что-то другое? –
@EricS. Я обновил свой ответ на примере! –