java - 在 fxml 中定义您的自定义类

标签 java javafx

我有一个名为“Language”的自定义类,我想在 fxml 中定义它,如下所示:

<Language fx:value="getBundle">
</Language>

语言扩展Object直接而不是任何 JavaFX 组件。显然它会抛出以下异常:

Unable to coerce com.bl.commons.Language@69435 to class javafx.scene.Node

那么我该怎么做呢?我想要的是,我的大部分模态都在那个类中,我想直接调用 Language 的方法并在 fxml 本身中设置内容。如果这不可能,那么还有其他选择吗?

最佳答案

据我所知,您的类(class)必须扩展 Node以某种方式添加到其他元素的子元素列表中(这就是将其放在 FXML 中的任何位置时所做的操作),因为这些子元素存储为 ObservableList<Node> .

请注意,这并不意味着您必须做任何特别的事情,只需执行以下操作即可:

public class Language extends Node // or StackPane or whatever
{
    public Language()
    {
        super();
        // ...carry on...
    }
}

如果Language已经扩展了其他一些你想要扩展该类的东西 Node或者重新考虑你的类层次结构。

关于java - 在 fxml 中定义您的自定义类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14640959/

相关文章:

java - 使用 java/javafx 更改 Linux 中的 Activity/应用程序菜单栏

java - 电网转换效率

java - 在java中捕获空白变量int输入

java - 没有 SQL 的 Javafx 数据库

java - 防止 SplitPane 的一侧在 javafx 中调整大小

JavaFX:类似 mozilla 的选项卡

java - 为什么转换后DocType为null?

Java套接字服务器客户端到客户端文件传输

JavaFX 中的 ListView 样式

javafx-2 - JavaFX是开源的吗?