我对JavaFX非常陌生,在FXML中使用我的自定义类有问题。当试图加载main.fxml时,控制台一直给我这个异常:
... 1 more
Caused by: java.lang.ClassNotFoundException: sample.View$BoardPane
at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
...我将BoardPane类创建为包sample.View中FlowPane的子类,并在FXML中将其引用如下:
<?import sample.View.BoardPane?>
...
<TitledPane expanded="true" collapsible="false" text="BoardPane" fx:id="centerTitledPane">
<BoardPane fx:id="mechoBoardPane"/>
</TitledPane>
...项目结构是这样的:
有人能帮我吗?我已经找了一段时间了,还没有找到任何解释。
发布于 2015-06-17 04:36:20
包名"View“必须是小写。在项目中,以及在fxml中。
有关更多细节,请参见方法loadType of FXMLLoader.class:
private Class<?> loadType(String name, boolean cache) throws ClassNotFoundException {
int i = name.indexOf('.');
int n = name.length();
while (i != -1
&& i < n
&& Character.isLowerCase(name.charAt(i + 1))) { // <<<<<<<<<
i = name.indexOf('.', i + 1);
}
if (i == -1 || i == n) {
throw new ClassNotFoundException();
}
String packageName = name.substring(0, i);
String className = name.substring(i + 1);
Class<?> type = loadTypeForPackage(packageName, className);
if (cache) {
classes.put(className, type);
}
return type;
}https://stackoverflow.com/questions/30881845
复制相似问题