Java 在fxml中定义自定义类
我有一个名为“Language”的自定义类,我想在fxml中定义它,如:Java 在fxml中定义自定义类,java,javafx,Java,Javafx,我有一个名为“Language”的自定义类,我想在fxml中定义它,如: <Language fx:value="getBundle"> </Language> 语言直接扩展对象,而不是任何JavaFX组件。显然,它引发了以下异常: 无法强制com.bl.commons。Language@69435到类javafx.scene.Node 那我该怎么做呢?我想要的是,我的大部分模态都在那个类中,我想直接调用语言的方法,并在fxml本身中设置内容。如果这是不可能的,那么
<Language fx:value="getBundle">
</Language>
语言直接扩展对象,而不是任何JavaFX组件。显然,它引发了以下异常:
无法强制com.bl.commons。Language@69435到类javafx.scene.Node
那我该怎么做呢?我想要的是,我的大部分模态都在那个类中,我想直接调用
语言的方法,并在fxml本身中设置内容。如果这是不可能的,那么还有其他选择吗?据我所知,您的类必须以某种方式扩展节点
,以便添加到其他元素的子元素列表中(这是您将其放在FXML中任何位置时所做的),因为这些子元素存储为ObservableList
请注意,这并不意味着您必须做任何特殊的事情,只需执行以下操作:
public class Language extends Node // or StackPane or whatever
{
public Language()
{
super();
// ...carry on...
}
}
如果Language
已经扩展了其他内容,您将希望使该类扩展Node
或重新考虑您的类层次结构。我看到了一些关于的问题,抱歉,最活跃的[JavaFx论坛是Oracle inc.JavaFx成员]()非常有趣的帖子和想法。对于使用类和java代码非常有用。但真正好的事情是将其写入fxml文件。