我正在运行最新的JDK:1.8.0_102,但它在1.8.0_45上也失败了。 这是我复制问题的简单程序。重现的步骤:
再次点击“最大化”(它不会执行任何操作)。
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);
}
}
答案 0 :(得分:0)
最大化必须设置为false才能再次运行!一旦您对舞台进行图标化,请尝试将maxim设置为false。如果maxim已经设置为true,则不会发生任何事情。希望这可以帮助!
example!!
public static void maximize() {
if (!stage.isMaximized()) {
stage.setWidth(Utils.WIDTH);
stage.setHeight(Utils.HEIGHT);
stage.setX(0);
stage.setY(0);
stage.setMaximized(true);
}
else {
if (stage.getX() != 0 && stage.getY() != 0) {
stage.setWidth(Utils.WIDTH);
stage.setHeight(Utils.HEIGHT);
stage.setX(0);
stage.setY(0);
}
else if (stage.getX() == 0 && stage.getY() == 0) {
stage.setMaximized(false);
stage.setWidth(Utils.WIDTH * .8);
stage.setHeight(Utils.HEIGHT * .8);
stage.setX(200);
stage.setY(85);
}
}
}
public static void minimize() {
stage.setIconified(true);
}