Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/308.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java FXML,替代用途:使用ObservableList<&燃气轮机;_Java_Fxml - Fatal编程技术网

Java FXML,替代用途:使用ObservableList<&燃气轮机;

Java FXML,替代用途:使用ObservableList<&燃气轮机;,java,fxml,Java,Fxml,在这个线程中,我正在构建一个应用程序,它使用FXML将对象直接加载到内存中 我已经成功地设置了一些可以轻松设置特定属性的对象,如主机名,类型名,moto,例如,在FXML中,您可以在可观察列表中保存JavaFXUI元素的类似列表的子节点。在FXML中使用功能(可观察列表)属性时遇到问题。它给出了一个错误,UnsupportedOperationException:无法确定属性的类型。如果可以为其他对象(如BorderPane)添加元素,为什么它不能将元素添加到列表中,因为observeList没

在这个线程中,我正在构建一个应用程序,它使用FXML将对象直接加载到内存中


我已经成功地设置了一些可以轻松设置特定属性的对象,如
主机名
类型名
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。