显示对话框后,无法调整javafx阶段的大小

时间:2015-10-14 20:16:34

标签: ubuntu javafx

最初可调整大小的JavaFX阶段在显示模式对话框后无法再调整大小。这只发生在Linux:Ubuntu和XUbuntu。它在Windows中运行良好。

下面的代码显示了一个带按钮的窗口。最初可以毫无问题地调整窗口大小。单击按钮后,将显示“警告”对话框,此后无法再调整窗口大小。这里有什么我想念的吗?这是一个Ubuntu错误吗?

import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.control.Alert;
import javafx.scene.control.Button;
import javafx.scene.control.ButtonType;
import javafx.scene.control.Alert.AlertType;
import javafx.scene.layout.StackPane;
import javafx.stage.Stage;

public class StageTest extends Application {

    @Override
    public void start(Stage primaryStage) throws Exception {
        primaryStage.setTitle("Hello World!");
        Button btn = new Button();
        btn.setText("Show Alert");
        btn.setOnAction(e -> {
            Alert alert = new Alert(AlertType.WARNING, "This is an alert", ButtonType.YES);
            alert.showAndWait();
        });
        StackPane root = new StackPane();
        root.getChildren().add(btn);
        primaryStage.setScene(new Scene(root, 1000, 850));
        primaryStage.show();
    }

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

2 个答案:

答案 0 :(得分:0)

这是在虚拟机上的linux上运行时发生的JavaFX错误。使用oracle jdk 1.8.0_152在VMWare上运行时,我在CentOS 7上遇到同样的问题。

此问题的错误提示位于:https://bugs.openjdk.java.net/browse/JDK-8140491

故障单只提到Virtual Box上的Ubuntu,但我在VMWare上遇到了与CentOS相同的问题。

不幸的是,JDK错误系统对公众不公开,因此我无法投票或观看该问题。目前,他们一直在踢罐头,并且不打算在Java 11之前修复它!也许如果有足够的人抱怨他们会尽快解决这个问题。

答案 1 :(得分:0)

我可以确认使用JDK 1.8u192的RHELS 6.9也会发生这种情况。

只有在“警报/对话框”被取消(隐藏)后,主阶段才可以调整大小。

一种解决方法是在显示之前致电alert.initModality(Modality.NONE)。 我不知道为什么会这样,但是可以为我解决。