Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/392.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
基本Java(FX)项目的InvocationTargetException错误_Java_Javafx_Invocationtargetexception - Fatal编程技术网

基本Java(FX)项目的InvocationTargetException错误

基本Java(FX)项目的InvocationTargetException错误,java,javafx,invocationtargetexception,Java,Javafx,Invocationtargetexception,我正在尝试使用Java和JavaFX制作一个简单的掷骰子游戏。我已经创建了场景,并制作了一个主Java类和一个Java控制器,但是无论我怎么努力,我总是会遇到同样的错误——我已经尝试用多种方法解决了这些错误,所以我只是想看看是否有人可以在正确的方向上给我一些指导!下面是我的类和FXML代码 main.java import java.io.IOException; import javafx.application.Application; import javafx.fxml.FXMLLoad

我正在尝试使用Java和JavaFX制作一个简单的掷骰子游戏。
我已经创建了场景,并制作了一个主Java类和一个Java控制器,但是无论我怎么努力,我总是会遇到同样的错误——我已经尝试用多种方法解决了这些错误,所以我只是想看看是否有人可以在正确的方向上给我一些指导!下面是我的类和FXML代码

main.java

import java.io.IOException;
import javafx.application.Application;
import javafx.fxml.FXMLLoader;
import javafx.scene.Parent;
import javafx.scene.Scene;
import javafx.stage.Stage;

public class main extends Application {

    public void start(Stage primaryStage) throws IOException{
        FXMLLoader loader = new FXMLLoader(getClass().getResource("welcome.fxml"));
        Parent root = (Parent) loader.load();
        primaryStage.setScene(new Scene(root));
        primaryStage.show();

    }

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

import java.io.IOException;   
import javafx.event.ActionEvent;
import javafx.fxml.FXML;
import javafx.fxml.FXMLLoader;
import javafx.scene.Parent;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.image.ImageView;
import javafx.stage.Stage;
import javafx.scene.control.TextField;

public class welcomecontroller {

    @FXML
    private ImageView p1_icon;

    @FXML
    private ImageView p2_icon;

    @FXML
    private ImageView end_icon;

    @FXML
    private ImageView die_animation;

    @FXML
    private Button btn_help;

    @FXML
    private Button btn_exit;

    @FXML
    private Button btn_start;

    @FXML
    void leftClick(ActionEvent event) {
        FXMLLoader loader = new FXMLLoader(getClass().getResource("main.fxml"));
        try {
            Parent root=(Parent) loader.load();
            Stage stage = new Stage();
            stage.setScene(new Scene(root));
            stage.show();
        }
        catch(IOException e)
        {
            e.printStackTrace();
        }
}

    @FXML
    private TextField field_player1;

//field_player1.getText(p2.setName());
    @FXML
    private TextField field_player2;

    @FXML
    private TextField field_endscore;        

}
welcome.fxml

<?xml version="1.0" encoding="UTF-8"?>

<?import javafx.scene.control.Button?>
<?import javafx.scene.control.TextField?>
<?import javafx.scene.image.Image?>
<?import javafx.scene.image.ImageView?>
<?import javafx.scene.layout.ColumnConstraints?>
<?import javafx.scene.layout.GridPane?>
<?import javafx.scene.layout.RowConstraints?>
<?import javafx.scene.text.Font?>
<?import javafx.scene.text.Text?>

<GridPane maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="400.0" prefWidth="600.0" xmlns="http://javafx.com/javafx/8.0.171" xmlns:fx="http://javafx.com/fxml/1" fx:controller="welcomecontroller.java">
  <columnConstraints>
    <ColumnConstraints hgrow="SOMETIMES" maxWidth="272.0" minWidth="0.0" prefWidth="57.0" />
    <ColumnConstraints hgrow="SOMETIMES" maxWidth="486.0" minWidth="10.0" prefWidth="278.0" />
      <ColumnConstraints hgrow="SOMETIMES" maxWidth="305.0" minWidth="0.0" prefWidth="87.0" />
      <ColumnConstraints hgrow="SOMETIMES" maxWidth="305.0" minWidth="10.0" prefWidth="179.0" />
      <ColumnConstraints hgrow="SOMETIMES" maxWidth="221.0" minWidth="0.0" prefWidth="43.0" />
      <ColumnConstraints hgrow="SOMETIMES" maxWidth="221.0" minWidth="10.0" prefWidth="26.0" />
  </columnConstraints>
  <rowConstraints>
      <RowConstraints minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES" />
      <RowConstraints maxHeight="50.0" minHeight="10.0" prefHeight="47.0" vgrow="SOMETIMES" />
    <RowConstraints maxHeight="53.0" minHeight="10.0" prefHeight="53.0" vgrow="SOMETIMES" />
    <RowConstraints minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES" />
    <RowConstraints minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES" />
      <RowConstraints minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES" />
      <RowConstraints minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES" />
      <RowConstraints minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES" />
      <RowConstraints minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES" />
  </rowConstraints>
   <children>
      <Text strokeType="OUTSIDE" strokeWidth="0.0" text="DICE GAME" textAlignment="CENTER" translateX="75.0" translateY="5.0" GridPane.columnIndex="1">
         <font>
            <Font name="Arial Black" size="29.0" />
         </font>
      </Text>
      <Text strokeType="OUTSIDE" strokeWidth="0.0" GridPane.columnIndex="1" GridPane.rowIndex="1" />
      <Text opacity="0.37" strokeType="OUTSIDE" strokeWidth="0.0" text="Made by emm35" translateX="265.0" translateY="6.0" wrappingWidth="92.23500061035156" GridPane.columnIndex="1" />
      <Text strokeType="OUTSIDE" strokeWidth="0.0" text="Player 1 Name:" translateX="65.0" GridPane.columnIndex="1" GridPane.rowIndex="2">
         <font>
            <Font name="System Bold Italic" size="17.0" />
         </font>
      </Text>
      <Text strokeType="OUTSIDE" strokeWidth="0.0" text="Player 2 Name:" translateX="65.0" GridPane.columnIndex="1" GridPane.rowIndex="4">
         <font>
            <Font name="System Bold" size="17.0" />
         </font>
      </Text>
      <Text strokeType="OUTSIDE" strokeWidth="0.0" text="End Game score:" translateX="65.0" GridPane.columnIndex="1" GridPane.rowIndex="6">
         <font>
            <Font name="System Bold" size="17.0" />
         </font>
      </Text>
      <Button fx:id="btn_exit" mnemonicParsing="false" text="EXIT GAME" translateX="60.0" GridPane.columnIndex="3" GridPane.rowIndex="3" />
      <Button fx:id="btn_help" mnemonicParsing="false" text="HELP/TUTORIAL" translateX="45.0" GridPane.columnIndex="3" GridPane.rowIndex="5" />
      <Button fx:id="btn_start" mnemonicParsing="false" text="START GAME" translateX="55.0" GridPane.columnIndex="3" GridPane.rowIndex="7" />
      <ImageView fitHeight="40.0" fitWidth="40.0" translateX="5.0" GridPane.rowIndex="7">
         <image>
            <Image url="@end.png" />
         </image>
      </ImageView>
      <ImageView fitHeight="40.0" fitWidth="40.0" translateX="5.0" GridPane.rowIndex="5">
         <image>
            <Image url="@player2.png" />
         </image>
      </ImageView>
      <ImageView fitHeight="40.0" fitWidth="40.0" translateX="5.0" GridPane.rowIndex="3">
         <image>
            <Image url="@player1.png" />
         </image>
      </ImageView>
      <ImageView fitHeight="109.0" fitWidth="103.0" translateX="45.0" GridPane.columnIndex="3" GridPane.rowIndex="1">
         <image>
            <Image url="@welcome_die.gif" />
         </image>
      </ImageView>
      <TextField fx:id="field_player1" GridPane.columnIndex="1" GridPane.rowIndex="3" />
      <TextField fx:id="field_player2" GridPane.columnIndex="1" GridPane.rowIndex="5" />
      <TextField fx:id="field_endscore" GridPane.columnIndex="1" GridPane.rowIndex="7" />
   </children>
</GridPane>

它们都在src/目录中,如下面的屏幕截图所示!任何建议都是非常感谢解决这个问题,因为我已经尝试了很多事情!我们正在使用场景生成器从创建场景

我的结构的图像


提前谢谢你

问题似乎是控制器路径

fx:controller=“welcomecontroller.java”
替换为
fx:controller=“emm35\u dicegame.welcomecontroller”


这对我很有用。

欢迎来到Stack Overflow!请看一下这一页。您会遇到哪些错误?