当前位置: 首页 > 知识库问答 >
问题:

FXML load()期间的JavaFX IllegalAccessException

百里锋
2023-03-14
void handleServicesEdit(ActionEvent event) throws IOException {

    DCServRecEditor sre = DialogController.<DCServRecEditor>loadFXML(
            CensusAssistant.RES_FXML_DIALOG_SERVEDIT,
            CensusAssistant.RES_STRING_SERVEDIT,
            this.getDialog());
    sre.setDialogMode(DB.DBEDIT_MODE_EDIT,
                      tbvService.getItems(),
                      tbvService.getSelectionModel().getSelectedIndex(),
                      m_encCal);
    sre.showAndWait();

    sre.release();
    this.updateGUI();
}
java.lang.IllegalAccessException: Class sun.reflect.misc.ReflectUtil 
    can not access a member of class org.kls.md.censusassistant.DCServRecEditor 
    with modifiers ""
file:/D:/Documents/NetBeansProjects/CensusAssistant/dist/run1284250063/CensusAssistant.jar!/org/kls/md/censusassistant/fxml/GUIServRecEditor.fxml:13
  at javafx.fxml.FXMLLoader$ValueElement.processAttribute(FXMLLoader.java:738)
  at javafx.fxml.FXMLLoader$InstanceDeclarationElement.processAttribute(FXMLLoader.java:775)
  at javafx.fxml.FXMLLoader$Element.processStartElement(FXMLLoader.java:180)
  at javafx.fxml.FXMLLoader$ValueElement.processStartElement(FXMLLoader.java:563)
    at javafx.fxml.FXMLLoader.processStartElement(FXMLLoader.java:2314)
  at javafx.fxml.FXMLLoader.load(FXMLLoader.java:2131)
  at javafx.fxml.FXMLLoader.load(FXMLLoader.java:2028)
  at org.kls.md.censusassistant.DialogController.loadFXML(DialogController.java:63)
  at org.kls.md.censusassistant.DCMainEditor.handleServicesEdit(DCMainEditor.java:330)
  at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

        ...

Caused by: java.lang.IllegalAccessException: Class sun.reflect.misc.ReflectUtil
    can not access a member of class org.kls.md.censusassistant.DCServRecEditor
    with modifiers "" 
  at sun.reflect.Reflection.ensureMemberAccess(Reflection.java:95)
  at java.lang.Class.newInstance0(Class.java:368)
  at java.lang.Class.newInstance(Class.java:327)
  at sun.reflect.misc.ReflectUtil.newInstance(ReflectUtil.java:46)
  at javafx.fxml.FXMLLoader$ValueElement.processAttribute(FXMLLoader.java:731)
... 66 more

我的类DCServeCeditorDialogController的子类。这是一个看起来很普通的FXML控制器类:

class DCServRecEditor extends DialogController {

    private int m_dialogMode = DB.DBEDIT_MODE_ADD;
    private int m_selServ = -1;
    private GregorianCalendar m_cal = null;


    @FXML // ResourceBundle that was given to the FXMLLoader
    private ResourceBundle resources;

    @FXML // URL location of the FXML file that was given to the FXMLLoader
    private URL location;

    @FXML // fx:id="ancMatchSelector"
    private AnchorPane ancMatchSelector; // Value injected by FXMLLoader

    @FXML // fx:id="ancServEditor"
    private AnchorPane ancServEditor; // Value injected by FXMLLoader

    @FXML // fx:id="ancServRecEditor"
    private AnchorPane ancServRecEditor; // Value injected by FXMLLoader

        ...
}

我进行了两次和三次检查,以确保FXML中没有一个命名控件在controller类中也没有实例字段。所有实例字段都用@fxml标记。

FXML中controller类的名称与我的java文件相同,并且有适当的限定。该错误发生在调用initialize()之前,因此我不认为它与initialize()有任何关系,尽管我已经检查了它是否也用@fxml标记。

错误消息除了说它有修饰符“”之外,没有给我关于它有问题的成员的任何细节。我回到我的controller类,将所有具有默认访问权限的成员设为public,但我仍然得到错误。
我甚至不知道问题是从我的类的哪里来的。有人知道这里出了什么问题吗?

共有1个答案

岳俊雅
2023-03-14

另一个令人尴尬的简单问题。

我很惊讶有人现在还没跳出来。

问题出在我的类dcservreceditor中。请注意,类是用default访问权限声明的。

 类似资料:
  • 下面是我的代码,用来说明我是如何调用它的: 下面的代码将生成错误: 但是,如果我做了这样的事情,我可以看到结果: 所有对em的引用都是通过此包导入的: 上面的两个查询不应该生成相同的结果吗?我是否缺少对列表接口的强制转换以允许它在类型化查询中工作?

  • 问题内容: 已修正-这是我现在所拥有的 -用ASP编写 原始问题: 简单的问题,但由于某种原因,我似乎无法正常工作。 我有一个搜索框,旁边是日期范围选择菜单,因此用户可以搜索最近1个月,6个月或12个月内的照片。 我所拥有的没有错误,但是当它应该执行时它不会产生任何结果,就是这样: SQL输出产生以下结果: 数据库的’dateCreated’字段设置为(Date INDEX)。 谁能看到哪里出了问

  • 问题内容: 我有一个脚本,需要在脚本的不同行执行以下命令: 在我的陈述中,我有以下内容: 我收到以下错误: 如果我将语句的顺序更改为: 我收到以下错误: 如果我再次将语句更改为: 我收到以下错误: 这是怎么回事,我怎么都可以工作? 问题答案: 您的麻烦是,您有一些代码希望对 模块 进行引用,而其他代码希望对类进行引用 。 显然,不能两者兼有。 当您这样做时: 您首先要设置为对该类的引用,然后立即将

  • 浏览训练视图 在训练期间您可利用向上/向下按钮浏览训练视图。请注意,可显示的训练视图与信息取决于您所选择的运动和您对所选运动内容的编辑。 在手表 Polar Flow 应用和网络服务中,您可添加运动内容以及针对每项运动内容进行具体设置。您可以为各项运动创建自定义训练视图,并选择训练期间想要看到的数据。有关更多信息,请参见 Flow 中的运动内容。 例如,训练视图可以显示以下信息: Your hea

  • 浏览训练视图 在训练期间您可利用向上/向下按钮浏览训练视图。请注意,可显示的训练视图与信息取决于您所选择的运动和您对所选运动内容的编辑。 在手表 Polar Flow 应用和网络服务中,您可添加运动内容以及针对每项运动内容进行具体设置。您可以为各项运动创建自定义训练视图,并选择训练期间想要看到的数据。有关更多信息,请参见 Flow 中的运动内容。 例如,训练视图可以显示以下信息: Your hea

  • 训练视图 您可以通过手腕姿势来启动显示屏并通过上下滑动显示屏来浏览训练视图.显示屏自动关闭以节约电池电量。在训练模式期间,您可以设置不关闭显示屏:通过轻触并按住触摸屏,直到您看到一个灯泡关闭图标。若要关闭此功能,请轻触并再次按住触摸屏,直到您看到一个灯泡关闭图标。 您可以看到以下训练视图。 有心率显示的训练 以当前心率区的颜色显示的当前心率。 到目前为止您的训练的时长。 当日时间。 到目前为止在训

  • 训练视图 您可以通过向上/向下按钮浏览训练视图。您可以看到以下训练视图。 有心率显示的训练 您的当前心率 到目前为止您的训练的时长。 您的当前心率 图表中的数字 130 显示 EnergyPointer 的内容, EnergyPointer 是个人化转折点,在该转折点您的训练的主要作用从燃烧脂肪转为提高健康水平。心形符号告诉您,您是在燃烧脂肪还是在提高健康水平。在图表中,该符号位于左侧,表示您正在

  • 介绍 日期时间包是Hutool的核心包之一,提供针对JDK中Date和Calendar对象的封装,封装对象如下: 日期时间工具 DateUtil 针对日期时间操作提供一系列静态方法 DateTime 提供类似于Joda-Time中日期时间对象的封装,继承自Date类,并提供更加丰富的对象方法。 FastDateFormat 提供线程安全的针对Date对象的格式化和日期字符串解析支持。此对象在实际使