gpt4 book ai didi

java - 在 Alert 上调用 initOwner 时的 NPE (JavaFX)

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:08:24 25 4
gpt4 key购买 nike

我正在编写一个显示 Alert 的程序,我正在尝试调用 initOwner 以便它使用应用程序图标,但我得到了一个NullPointerException

这是一个最小的例子:

import javafx.application.Application;
import javafx.scene.control.Alert;
import javafx.stage.Stage;

public class AlertTest extends Application {
@Override
public void start(final Stage primaryStage) throws Exception {
final Alert alert = new Alert(Alert.AlertType.INFORMATION);
alert.initOwner(primaryStage); // line 9
alert.showAndWait();
}

public static void main(final String... args) {
launch(args);
}
}

和相关的堆栈跟踪:

Caused by: java.lang.NullPointerException
at javafx.scene.control.HeavyweightDialog.updateStageBindings(HeavyweightDialog.java:319)
at javafx.scene.control.HeavyweightDialog.initOwner(HeavyweightDialog.java:120)
at javafx.scene.control.Dialog.initOwner(Dialog.java:451)
at AlertTest.start(AlertTest.java:9)

我做错了什么?

我在 Linux 中使用 Oracle 的 JDK 1.8.0_51。

最佳答案

您将收到 NullPointerException,因为您没有将 Scene 设置为主要阶段。

public class Main extends Application {

@Override
public void start(final Stage primaryStage) throws Exception {
final Alert alert = new Alert(Alert.AlertType.INFORMATION);

primaryStage.setScene(new Scene(new Group(), 300, 300, Color.BLACK));

alert.initOwner(primaryStage);

alert.showAndWait();
}

public static void main(final String... args) {
launch(args);
}

}

关于java - 在 Alert 上调用 initOwner 时的 NPE (JavaFX),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32451533/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com