Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/15.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
尝试使用JavaFX&;FXML,但程序没有';由于InvocationTargetException和NullException而无法工作_Java_Exception_Javafx_Fxml - Fatal编程技术网

尝试使用JavaFX&;FXML,但程序没有';由于InvocationTargetException和NullException而无法工作

尝试使用JavaFX&;FXML,但程序没有';由于InvocationTargetException和NullException而无法工作,java,exception,javafx,fxml,Java,Exception,Javafx,Fxml,我正在尝试在eclipse中学习JavaFX,并且已经正确安装了它。因为我不想编写太多的布局代码,因为这很耗时,所以我发现有一种方法可以对GUI建模,那就是FXML。但是,当我尝试编写FXML代码时,它导致了一个错误。参考图片: 我有以下文件: Main 包应用; 导入java.io.FileInputStream; 导入java.io.IOException; 导入javafx.application.application; 导入javafx.fxml.fxmloader; 导入javaf

我正在尝试在eclipse中学习JavaFX,并且已经正确安装了它。因为我不想编写太多的布局代码,因为这很耗时,所以我发现有一种方法可以对GUI建模,那就是FXML。但是,当我尝试编写FXML代码时,它导致了一个错误。参考图片:

我有以下文件: Main

包应用;
导入java.io.FileInputStream;
导入java.io.IOException;
导入javafx.application.application;
导入javafx.fxml.fxmloader;
导入javafx.scene.scene;
导入javafx.scene.layout.ancorpane;
导入javafx.stage.stage;
公共类主扩展应用程序{
公共静态void main(字符串[]args){
发射(args);
}
@凌驾
public void start(Stage)引发异常{
FXMLLoader=新的FXMLLoader();
字符串fxmlDocPath=“/fxmltest/src/main.fxml”;
FileInputStream fxmlStream=新的FileInputStream(fxmlDocPath);
锚烷根=(锚烷)加载器。加载(fxmlStream);
场景=新场景(根);
舞台场景;
阶段。设置标题(“示例”);
stage.show();
}
}
FXML


.

那么如何呈现这个fxml呢?

右键单击main.fxml文件并获取相对路径。将其复制并粘贴到以下代码中

public class Main extends Application {

@Override
public void start(Stage primaryStage) throws Exception{

    Parent root = FXMLLoader.load(getClass().getResource("/relative_path_to/main.fxml"));
    primaryStage.setTitle("Login");
    primaryStage.setScene(new Scene(root));
    primaryStage.show();
}


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

开始。尝试过了,但没有成功。前面有斜杠的“相对路径”是-a。。。绝对路径;)你有解决方案吗?请使用maven中使用的目录约定。
public class Main extends Application {

@Override
public void start(Stage primaryStage) throws Exception{

    Parent root = FXMLLoader.load(getClass().getResource("/relative_path_to/main.fxml"));
    primaryStage.setTitle("Login");
    primaryStage.setScene(new Scene(root));
    primaryStage.show();
}


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