我有一个名为“语言”的自定义类,我想在 fxml 中定义它,例如:
<Language fx:value="getBundle">
</Language>
Run Code Online (Sandbox Code Playgroud)
语言Object直接扩展而不是任何 JavaFX 组件。显然它抛出以下异常:
无法将 com.bl.commons.Language@69435 强制转换为 javafx.scene.Node 类
那么我该怎么做呢?我想要的是,我的大部分模态都在那个类中,我想直接调用Languagefxml 本身的方法和设置内容。如果这是不可能的,那么还有其他选择吗?
据我所知,您的类必须以Node某种方式扩展才能添加到其他元素的子元素列表中(这就是您将它放在 FXML 中的任何位置时所做的事情),因为这些子元素存储为ObservableList<Node>.
请注意,这并不意味着您必须做任何特别的事情,只需执行以下操作:
public class Language extends Node // or StackPane or whatever
{
public Language()
{
super();
// ...carry on...
}
}
Run Code Online (Sandbox Code Playgroud)
如果Language已经扩展了其他东西,您将希望使该类扩展Node或重新考虑您的类层次结构。
| 归档时间: |
|
| 查看次数: |
1789 次 |
| 最近记录: |