我正在处理的项目正在使用JavaFx框架,因此我们正在使用fxml文件和Scene Builder。我已经在网上找到了一些示例,为我们的应用程序制作了自定义控件,并且效果很好。但是,我们将拥有具有通用基本功能的多个自定义控件。因此,我想将基本功能继承到自定义控件中。
我要尝试做的是创建一个扩展自定义根控件类的自定义控件。这是CustomControl.fxml文件的样子:
<?import com.custom.CustomRootControl ?>
<fx:root type="CustomRootControl" xmlns:fx="http://javafx.com/fxml">
/* Add children here... */
</fx:root>
现在,我的CustomRootControl类如下所示:
public class CustomRootClass extends Pane {
/* Customization to be performed */
}
它是皮肤和骨头,当打开CustomControl.fxml时,我不希望在Scene Builder中看到太多内容,但是fxml文件不会在Scene Builder中打开。相反,我收到以下错误消息:
java.io.IOException: javafx.fxml.LoadException: <path_to_CustomControl.fxml>
...
Caused by: javafx.fxml.LoadException: <path_to_CustomControl.fxml>
...
Caused by: java.lang.ClassNotFoundException: com.custom.CustomRootControl
at java.lang.ClassLoader.findClass(ClassLoader.java:530)
...
有办法做我想做的事吗?如果是这样,我该怎么做呢?
您必须将此插入您的fxml文件中
<?scenebuilder-classpath-element <path_to_CustomControl.jar>?>
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句