Java FXML,替代用途:使用ObservableList<&燃气轮机;
在这个线程中,我正在构建一个应用程序,它使用FXML将对象直接加载到内存中Java FXML,替代用途:使用ObservableList<&燃气轮机;,java,fxml,Java,Fxml,在这个线程中,我正在构建一个应用程序,它使用FXML将对象直接加载到内存中 我已经成功地设置了一些可以轻松设置特定属性的对象,如主机名,类型名,moto,例如,在FXML中,您可以在可观察列表中保存JavaFXUI元素的类似列表的子节点。在FXML中使用功能(可观察列表)属性时遇到问题。它给出了一个错误,UnsupportedOperationException:无法确定属性的类型。如果可以为其他对象(如BorderPane)添加元素,为什么它不能将元素添加到列表中,因为observeList没
我已经成功地设置了一些可以轻松设置特定属性的对象,如
主机名
,类型名
,moto
,例如,在FXML中,您可以在可观察列表
中保存JavaFXUI元素的类似列表的子节点。在FXML中使用功能
(可观察列表
)属性时遇到问题。它给出了一个错误,UnsupportedOperationException:无法确定属性的类型
。如果可以为其他对象(如BorderPane
)添加元素,为什么它不能将元素添加到列表中,因为observeList
没有公共的具体类型您必须使用FXCollections
工厂方法来获取实例。幸运的是,FXML设计用于处理这样的情况:通过使用fx:factory
属性。您可以在中了解有关不同的fx:
选项的更多信息
举个例子
元素的类型将是由fx:factory
声明的工厂方法返回的类型。在这种情况下,一个可观察列表
(由数组列表
支持)
如果您有一个定义了
observeList
字段(例如features
)的类,并且有一个合适的getter,那么您应该能够执行以下操作:
然而,我很难让它发挥作用。当我尝试它时,只有第一个元素被添加到ObservableList
,我不知道为什么(可能是个bug)
我通过以下方法解决了这个问题:
出于某种原因,注释也是如此。它一直告诉我“没有默认属性”。。。但确实如此
除了“变通方法”之外,您可以像其他任何属性一样,简单地将其“设置”为ObservableList
。或者您可以(可能)将FXML
注释与fx:id
结合使用,谢谢您,先生!现在我可以轻松地为学校的投票系统(我是一名学生)构建UI了。@SukantKumar我没有发布.java
文件(没有制作),但我添加了一些信息,我认为这些信息更好地反映了你的情况。但是,我不知道为什么我不能像用类似于堆栈窗格的东西定义
一样定义FXML。