将自定义类识别为fxml标记

时间:2015-05-25 13:42:35

标签: javafx-2 javafx-8 fxml

我有一个自定义文本字段PersistentPromptTextField,它扩展了TextField,并希望能够将其添加到我的.fxml文件中。当我这样做并运行它时,我会得到一个错误列表,例如:

Caused by: java.lang.InstantiationException: gui.PersistentPromptTextField
at java.lang.Class.newInstance(Unknown Source)
at sun.reflect.misc.ReflectUtil.newInstance(Unknown Source)
... 75 more
Caused by: java.lang.NoSuchMethodException: gui.PersistentPromptTextField.<init>()
at java.lang.Class.getConstructor0(Unknown Source)
... 77 more

在我的.fxml文件中,我也包含了<?import gui.PersistentPromptTextField?>,但显然我遗漏了一些东西。

1 个答案:

答案 0 :(得分:2)

FXMLLoader引起的错误(默认情况下)尝试使用no-arg构造函数实例化给定的类。如果您没有定义,请尝试。

使用具有某些参数的构造函数进行实例化,您需要使用@NamedArgs注释。有关详细信息,请参阅this comprehensive answer