Closed. This question is off-topic。它当前不接受答案。
                            
                        
                    
                
                            
                                
                
                        
                            
                        
                    
                        
                            想改善这个问题吗? Update the question,所以它是on-topic,用于堆栈溢出。
                        
                        6年前关闭。
                                                                                            
                
        
我有一个名为“语言”的自定义类,我想在fxml中定义它,例如:

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


语言直接扩展Object,而不扩展任何JavaFX组件。显然,它引发以下异常:


  无法将com.bl.commons.Language@69435强制转换为类javafx.scene.Node


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

最佳答案

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

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

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


如果Language已经扩展了其他内容,您将希望使该类扩展Node或重新考虑您的类层次结构。

10-07 13:54