gpt4 book ai didi

JavaFx 程序抛出 java.lang.reflect.InitationTargetException

转载 作者:行者123 更新时间:2023-11-30 07:27:45 25 4
gpt4 key购买 nike

这是我的第一个问题,所以如果有问题请不要生我的气。我目前正在 JavaFx 的帮助下为 java 编写一个空闲类游戏。下面的代码是用 eclipse mars 和 JavaFx 编写的。 Eclipse 向我表明代码是正确的,但是当我想启动程序时,它会抛出以下错误消息 block :

public class Main extends Application{

private static final Color color = Color.web("#464646");
Button button3 = new Button("D");
DropShadow shadow = new DropShadow();
Label label = new Label();

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

@Override
public void start(Stage primaryStage) throws Exception{
Scene scene = new Scene(new Group());
primaryStage.setTitle("Button Sample");
primaryStage.setWidth(300);
primaryStage.setHeight(190);

label.setFont(Font.font("Times New Roman", 22));
label.setTextFill(color);

Image imageDecline = new Image(getClass().getResourceAsStream("../not.png"));
Image imageAccept = new Image(getClass().getResourceAsStream("../ok.png"));

VBox vbox = new VBox();
vbox.setLayoutX(20);
vbox.setLayoutY(20);
HBox hbox1 = new HBox();
HBox hbox2 = new HBox();

Button button1 = new Button("Accept");
button1.setStyle("-fx-font: 22 arial; -fx-base: #b6e7c9;");
button1.setOnAction(new EventHandler<ActionEvent>() {
@Override
public void handle(ActionEvent e) {
label.setText("Accepted");
}
});

Button button2 = new Button("Accept");
button2.setOnAction(new EventHandler<ActionEvent>() {
@Override
public void handle(ActionEvent e) {
label.setText("Accepted");
}
});

button3.setOnAction(new EventHandler<ActionEvent>() {
@Override
public void handle(ActionEvent e) {
label.setText("Declined");
}
});

button3.addEventHandler(MouseEvent.MOUSE_ENTERED, new EventHandler<MouseEvent>() {
@Override
public void handle(MouseEvent e) {
button3.setEffect(shadow);
}
});

button3.addEventHandler(MouseEvent.MOUSE_EXITED, new EventHandler<MouseEvent>() {
@Override
public void handle(MouseEvent e) {
button3.setEffect(null);
}
});

hbox1.getChildren().add(button2);
hbox1.getChildren().add(button3);
hbox1.getChildren().add(label);
hbox1.setSpacing(10);
hbox1.setAlignment(Pos.BOTTOM_CENTER);

Button button4 = new Button();
button4.setGraphic(new ImageView(imageAccept));
button4.setOnAction(new EventHandler<ActionEvent>() {
@Override
public void handle(ActionEvent e) {
label.setText("Accepted");
}
});

Button button5 = new Button();
button5.setGraphic(new ImageView(imageDecline));
button5.setOnAction(new EventHandler<ActionEvent>() {
@Override
public void handle(ActionEvent e) {
label.setText("Declined");
}
});

hbox2.getChildren().add(button4);
hbox2.getChildren().add(button5);
hbox2.setSpacing(25);

vbox.getChildren().add(button1);
vbox.getChildren().add(hbox1);
vbox.getChildren().add(hbox2);
vbox.setSpacing(10);
((Group) scene.getRoot()).getChildren().add(vbox);

primaryStage.setScene(scene);
primaryStage.show();
}}

我希望这里的任何人都可以针对此问题提供提示或解决方案:) 如果您能提供帮助,我会非常高兴。

最诚挚的问候,迈克

最佳答案

我认为您的问题与您用于创建 Image 对象的输入流有关:

... = new Image(getClass().getResourceAsStream("../not.png"));

当我在 Eclipse 中启动您的应用程序时,我也收到一个 InitationTargetException 异常。这是由 NullPointerException 引起的,因为找不到 PNG 文件。

尝试在不创建 Image 对象的情况下启动应用程序,看看是否仍然遇到任何异常。

关于JavaFx 程序抛出 java.lang.reflect.InitationTargetException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36578995/

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