我正在尝试创建一个存储图像列表的自定义控件。理想情况下,在FXML文件中,我可以通过传递一个参数来实例化我的控件,该参数是到所述图像的文件路径的列表。
我已经获得了从FXML加载的控件,在这里是构造函数
public Gallery(@NamedArg("images") List<String> images) {
this.imageQueue = new PriorityQueue<>(images);
this.load("gallery.fxml");
this.scrollImage();
}
这里是加载它的FXML
<Gallery fx:id="contentPane" prefHeight="250.0" prefWidth="600.0">
<images>
1.png,
2.png,
3.png
</images>
</Gallery>
加载没有问题,但是没有图像,并且进行了一些简单的打印,我看到,与其创建具有三个值1.png,2.png,3.png的列表,它创建具有1值“ 1”的列表。 png,2.png,3.png“
所以,我的问题是如何将其实例化为包含3个单独值的列表?
一种类似的方法将与只读列表属性一起使用,但是这种fxml没有提供某些信息:
List
实现?"1.png,\n 2.png,\n 3.png"
,"1.png,", "\n 2.png,\n 3.png"
或其他内容的列表?可以做这样的事情,但是您需要修改fxml的结构:
<?import java.util.ArrayList?>
<?import java.lang.String?>
...
<Gallery fx:id="contentPane" prefHeight="250.0" prefWidth="600.0">
<images>
<ArrayList>
<String fx:value="1.png" />
<String fx:value="2.png" />
<String fx:value="3.png" />
</ArrayList>
</images>
</Gallery>