加载FXML文件时发生JavaFX LoadException
每次运行JavaFX应用程序时,我都会遇到以下错误加载FXML文件时发生JavaFX LoadException,java,javafx,scenebuilder,Java,Javafx,Scenebuilder,每次运行JavaFX应用程序时,我都会遇到以下错误 15:11:52.778 [JavaFX Application Thread] ERROR org.fhl.Manifesto - javafx.fxml.LoadException: /C:/ManGenFX/target/classes/dataController.fxml /C:/ManGenFX/target/classes/ManifestoMain.fxml:7 但只有在主控制器上添加initialize方法时才会发生
15:11:52.778 [JavaFX Application Thread] ERROR org.fhl.Manifesto - javafx.fxml.LoadException:
/C:/ManGenFX/target/classes/dataController.fxml
/C:/ManGenFX/target/classes/ManifestoMain.fxml:7
但只有在主控制器上添加initialize方法时才会发生
public class MainController{
@FXML
GenerateController genCont;
@FXML
private Pane generatePane;
@FXML
AnchorPane mainFx;
private Node source;
//Other Button, TextFields and Labels declaration
@FXML
private void browseFile(ActionEvent x) {
//Browse file definition
}
@FXML
private void savePath(ActionEvent x) {
//Save file definition
}
//Problem with this method
@FXML
public void initialize() {
System.out.println("Initialize generate controller panel");
logger.info("Initialize generate controller panel");
genCont.init(this);
}
}
如果我删除MainController类上的initialize方法,它将不会抛出任何错误,但如果我单击下面GenerateController类中定义的generate按钮,则不会发生任何错误
public class GenerateController {
@FXML
Button btnGenerate;
@FXML
Pane paneGen;
@FXML
public void generateMan(ActionEvent event) {
//generateMan body when Generate button is clicked
}
public void init(MainController mc) {
System.out.println("Init mainControl");
mainControl = mc;
}
public void validate() {
//Definition of method body here
}
}
这是主课
public class Man extends Application {
private Stage mainStage;
@Override
public void start(Stage primaryStage) {
this.mainStage = primaryStage;
this.mainStage.setTitle("Manifest");
try{
Parent root = FXMLLoader.load(getClass().getResource("/ManifestoMain.fxml"));
Scene sMain = new Scene(root);
mainStage.setScene(sMain);
mainStage.show();
}catch(IOException ioE) {
logger.error(ioE);
}
}
public static void main(String[] args) {
launch(args);
}
}
另外,我将dataController.fxml、ManifestoMain.fxml和generateView.fxml放在resources文件夹下,但访问这些文件没有任何问题。感谢您的帮助。在问题中发布完整的堆栈跟踪。您是否也可以发布FXML文件,并指出哪一行是
manifestoMain.FXML
中的第7行?@James\D不幸的是,这是我在点击run时收到的唯一一个有点奇怪的错误。将ioE.printStackTrace()
添加到catch块中,看看它是否给出了完整的错误。可能您的记录器以某种方式配置为不生成完整的堆栈跟踪。我需要将其放置在哪里?在catch块中。在问题中发布完整的堆栈跟踪。您是否也可以发布FXML文件,并指出哪一行是manifestoMain.FXML
中的第7行?@James\D不幸的是,这是我在点击run时收到的唯一一个有点奇怪的错误。将ioE.printStackTrace()
添加到catch块中,看看它是否给出了完整的错误。可能您的记录器以某种方式配置为不生成完整堆栈跟踪。我需要将其放置在哪里?在catch块中。