我正在研究的项目是使用JavaFx框架,因此我们使用的是fxml文件和Scene Builder。我已根据web上的示例对我们的应用程序进行了自定义控件,并且它的工作非常精彩。但是,我们将拥有多个具有共同基本功能的自定义控件。因此,我希望将基本功能继承到自定义控件中。
我要做的是创建一个扩展自定义根控件类的自定义控件。这就是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)
...
有没有办法做我想做的事情?如果是这样,我该怎么做呢?
答案 0 :(得分:0)
您必须将其插入fxml文件
<?scenebuilder-classpath-element <path_to_CustomControl.jar>?>