Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/341.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 8中将控制器添加到fxml文件时发生LoadException_Java_Javafx_Model View Controller_Netbeans_Scenebuilder - Fatal编程技术网

在Java 8中将控制器添加到fxml文件时发生LoadException

在Java 8中将控制器添加到fxml文件时发生LoadException,java,javafx,model-view-controller,netbeans,scenebuilder,Java,Javafx,Model View Controller,Netbeans,Scenebuilder,每次我向fxml文件添加控制器时,都会得到一个异常:javafx.fxml.LoadException,当我打印异常消息时,它会显示文件的正确目录 我正在为GUI使用netbeans 8 IDE、Java 8和场景生成器 FXML: 我的程序中的所有其他FXML文件都运行良好,它就是这个FXML文件,无论我向其中添加哪个控制器,它都会阻止它加载,当我删除控制器属性时,它会正常打开 完整堆栈跟踪: javafx.fxml.LoadException: file:/D:/Personal/Proj

每次我向fxml文件添加控制器时,都会得到一个异常:javafx.fxml.LoadException,当我打印异常消息时,它会显示文件的正确目录

我正在为GUI使用netbeans 8 IDE、Java 8和场景生成器

FXML:

我的程序中的所有其他FXML文件都运行良好,它就是这个FXML文件,无论我向其中添加哪个控制器,它都会阻止它加载,当我删除控制器属性时,它会正常打开

完整堆栈跟踪:

javafx.fxml.LoadException: 
file:/D:/Personal/Projects/Tools/Java/Organizer/dist/run798015614/Organizer.jar!/organizer/View/DeleteCategory.fxml:10

    at javafx.fxml.FXMLLoader.constructLoadException(FXMLLoader.java:2601)
    at javafx.fxml.FXMLLoader.access$700(FXMLLoader.java:103)
    at javafx.fxml.FXMLLoader$ValueElement.processAttribute(FXMLLoader.java:932)
    at javafx.fxml.FXMLLoader$InstanceDeclarationElement.processAttribute(FXMLLoader.java:971)
    at javafx.fxml.FXMLLoader$Element.processStartElement(FXMLLoader.java:220)
    at javafx.fxml.FXMLLoader$ValueElement.processStartElement(FXMLLoader.java:744)
    at javafx.fxml.FXMLLoader.processStartElement(FXMLLoader.java:2707)
    at javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:2527)
    at javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:2441)
    at javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:3214)
    at javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:3175)
    at javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:3148)
    at javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:3124)
    at javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:3104)
    at javafx.fxml.FXMLLoader.load(FXMLLoader.java:3097)
    at organizer.Controller.Main.switchWindow(Main.java:32)
    at organizer.Controller.Main.start(Main.java:21)
    at com.sun.javafx.application.LauncherImpl.lambda$launchApplication1$161(LauncherImpl.java:863)
    at com.sun.javafx.application.PlatformImpl.lambda$runAndWait$174(PlatformImpl.java:326)
    at com.sun.javafx.application.PlatformImpl.lambda$null$172(PlatformImpl.java:295)
    at java.security.AccessController.doPrivileged(Native Method)
    at com.sun.javafx.application.PlatformImpl.lambda$runLater$173(PlatformImpl.java:294)
    at com.sun.glass.ui.InvokeLaterDispatcher$Future.run(InvokeLaterDispatcher.java:95)
    at com.sun.glass.ui.win.WinApplication._runLoop(Native Method)
    at com.sun.glass.ui.win.WinApplication.lambda$null$147(WinApplication.java:177)
    at java.lang.Thread.run(Thread.java:748)
Caused by: java.lang.InstantiationException: organizer.Controller.DeleteCategoryController
    at java.lang.Class.newInstance(Class.java:427)
    at sun.reflect.misc.ReflectUtil.newInstance(ReflectUtil.java:51)
    at javafx.fxml.FXMLLoader$ValueElement.processAttribute(FXMLLoader.java:927)
    ... 23 more
Caused by: java.lang.NoSuchMethodException: organizer.Controller.DeleteCategoryController.<init>()
    at java.lang.Class.getConstructor0(Class.java:3082)
    at java.lang.Class.newInstance(Class.java:412)
    ... 25 more
javafx.fxml.LoadException:
文件:/D:/Personal/Projects/Tools/Java/Organizer/dist/run798015614/Organizer.jar/organizer/View/DeleteCategory.fxml:10
位于javafx.fxml.fxmloader.constructLoadException(fxmloader.java:2601)
在javafx.fxml.fxmloader.access$700(fxmloader.java:103)
在javafx.fxml.fxmloader$ValueElement.processAttribute(fxmloader.java:932)中
在javafx.fxml.fxmloader$InstanceDecrationElement.processAttribute中(FXMLLoader.java:971)
在javafx.fxml.fxmloader$Element.processStartElement(fxmloader.java:220)
在javafx.fxml.fxmloader$ValueElement.processStartElement(fxmloader.java:744)
在javafx.fxml.fxmloader.processStartElement(fxmloader.java:2707)
在javafx.fxml.fxmloader.loadImpl(fxmloader.java:2527)
在javafx.fxml.fxmloader.loadImpl(fxmloader.java:2441)
在javafx.fxml.fxmloader.loadImpl(fxmloader.java:3214)
在javafx.fxml.fxmloader.loadImpl(fxmloader.java:3175)
在javafx.fxml.fxmloader.loadImpl(fxmloader.java:3148)
在javafx.fxml.fxmloader.loadImpl(fxmloader.java:3124)
在javafx.fxml.fxmloader.loadImpl(fxmloader.java:3104)
在javafx.fxml.fxmloader.load(fxmloader.java:3097)
位于organizer.Controller.Main.switchWindow(Main.java:32)
在organizer.Controller.Main.start(Main.java:21)
在com.sun.javafx.application.launchempl.lambda$launchApplication1$161(launchempl.java:863)
位于com.sun.javafx.application.PlatformImpl.lambda$runAndWait$174(PlatformImpl.java:326)
位于com.sun.javafx.application.PlatformImpl.lambda$null$172(PlatformImpl.java:295)
位于java.security.AccessController.doPrivileged(本机方法)
com.sun.javafx.application.PlatformImpl.lambda$runLater$173(PlatformImpl.java:294)
位于com.sun.glass.ui.invokelateDispatcher$Future.run(invokelateDispatcher.java:95)
在com.sun.glass.ui.win.WinApplication.\u runLoop(本机方法)
位于com.sun.glass.ui.win.WinApplication.lambda$null$147(WinApplication.java:177)
运行(Thread.java:748)
原因:java.lang.InstanceException:organizer.Controller.DeleteCategoryController
位于java.lang.Class.newInstance(Class.java:427)
位于sun.reflect.misc.reflectil.newInstance(reflectil.java:51)
在javafx.fxml.fxmloader$ValueElement.processAttribute(fxmloader.java:927)中
... 23多
原因:java.lang.NoSuchMethodException:organizer.Controller.DeleteCategoryController。()
位于java.lang.Class.getConstructor0(Class.java:3082)
位于java.lang.Class.newInstance(Class.java:412)
... 25多
知道为什么吗?
我感谢你的帮助,所以我找到了解决方案,我将在这里发布,以便有人可以利用它 当我删除了该程序运行的构造函数时,看起来在JavaFx应用程序中只能使用默认构造函数,但是如果需要向构造函数添加参数,则需要使用ControllerFactory

package organizer.Controller;

import java.net.URL;
import java.util.ResourceBundle;
import javafx.fxml.FXML;
import javafx.fxml.Initializable;
import javafx.scene.control.ListView;
import javafx.scene.text.Text;
import organizer.Model.SQL_Objects;


public class DeleteCategoryController extends SQL_Objects implements Initializable{

    @FXML private ListView listViewRemainingCategories;
    @FXML private Text textDeletingCategory;
    @FXML private Text textMessage;
    @FXML private Text textDeleteThen;

    private int toRemoveId;
    private String toRemoveName;
    private int associatedRecordsCount;

    public DeleteCategoryController(String toRemoveName, int toRemoveId, int associatedRecordCount) {
        this.toRemoveName = toRemoveName;
        this.toRemoveId = toRemoveId;
        this.associatedRecordsCount = associatedRecordCount;
    }

    @Override
    public void initialize(URL location, ResourceBundle resources) {

    }
javafx.fxml.LoadException: 
file:/D:/Personal/Projects/Tools/Java/Organizer/dist/run798015614/Organizer.jar!/organizer/View/DeleteCategory.fxml:10

    at javafx.fxml.FXMLLoader.constructLoadException(FXMLLoader.java:2601)
    at javafx.fxml.FXMLLoader.access$700(FXMLLoader.java:103)
    at javafx.fxml.FXMLLoader$ValueElement.processAttribute(FXMLLoader.java:932)
    at javafx.fxml.FXMLLoader$InstanceDeclarationElement.processAttribute(FXMLLoader.java:971)
    at javafx.fxml.FXMLLoader$Element.processStartElement(FXMLLoader.java:220)
    at javafx.fxml.FXMLLoader$ValueElement.processStartElement(FXMLLoader.java:744)
    at javafx.fxml.FXMLLoader.processStartElement(FXMLLoader.java:2707)
    at javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:2527)
    at javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:2441)
    at javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:3214)
    at javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:3175)
    at javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:3148)
    at javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:3124)
    at javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:3104)
    at javafx.fxml.FXMLLoader.load(FXMLLoader.java:3097)
    at organizer.Controller.Main.switchWindow(Main.java:32)
    at organizer.Controller.Main.start(Main.java:21)
    at com.sun.javafx.application.LauncherImpl.lambda$launchApplication1$161(LauncherImpl.java:863)
    at com.sun.javafx.application.PlatformImpl.lambda$runAndWait$174(PlatformImpl.java:326)
    at com.sun.javafx.application.PlatformImpl.lambda$null$172(PlatformImpl.java:295)
    at java.security.AccessController.doPrivileged(Native Method)
    at com.sun.javafx.application.PlatformImpl.lambda$runLater$173(PlatformImpl.java:294)
    at com.sun.glass.ui.InvokeLaterDispatcher$Future.run(InvokeLaterDispatcher.java:95)
    at com.sun.glass.ui.win.WinApplication._runLoop(Native Method)
    at com.sun.glass.ui.win.WinApplication.lambda$null$147(WinApplication.java:177)
    at java.lang.Thread.run(Thread.java:748)
Caused by: java.lang.InstantiationException: organizer.Controller.DeleteCategoryController
    at java.lang.Class.newInstance(Class.java:427)
    at sun.reflect.misc.ReflectUtil.newInstance(ReflectUtil.java:51)
    at javafx.fxml.FXMLLoader$ValueElement.processAttribute(FXMLLoader.java:927)
    ... 23 more
Caused by: java.lang.NoSuchMethodException: organizer.Controller.DeleteCategoryController.<init>()
    at java.lang.Class.getConstructor0(Class.java:3082)
    at java.lang.Class.newInstance(Class.java:412)
    ... 25 more