我正在编写一个显示Alert
的程序,并且我试图调用initOwner
以便它将使用应用程序图标,但我得到了{{{1} 1}}。
这是一个最小的例子:
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);
}
}
我做错了什么?
我在Linux中使用Oracle的JDK 1.8.0_51。
答案 0 :(得分:3)
您收到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);
}
}