@FXML
ImageView ImageViewArrays[];
在Scene Builder ImageViewArrays [1]中设置一个ImageView的fx:id?
答案 0 :(得分:2)
我想这就是这样:在控制器类中:
private ImageView s1;
@FXML
private ImageView s2;
@FXML
private ImageView s3;
@FXML
private ImageView s4;
@FXML
private ImageView s5;
在Scene Builder上设置每个ImageView的fx:id,s1 ... s5然后再作为数组进行intergrade
ImageView Pic[]=new ImageView{s1,s2,s3,s4};
答案 1 :(得分:2)
我不知道SceneBuilder 1.1对控件数组有任何直接支持。
但是如果你正在处理表单上的静态控件数组,那么正如Riporter所说,在FXML加载操作期间通过包含他在你的Initialize()方法中提供的语句来生成控件数组是微不足道的。控制器类。
Imageview[] m_pics = new Imageview[] {s1, s2, s3, s4, ...};
如果您需要使用动态生成的控件数组,您仍然可以使用FXML生成基本实例,您可以在控制器类的Initialize()方法中创建ArrayList,例如:
private List<ImageView> m_pics;
@FXML
private ImageView iv1;
然后在您的Initialize()方法中:
private void Initialize() {
m_pics = new ArrayList<>();
m_pics.add(iv1);
:
:
}
通过这种方式,即使你必须将代码与FXML混合以获得你想要的东西,但是当你的控制器类对象被完全加载时,它仍然会向你(或其他程序员)看起来像你创建了一个数组列表FXML中的ImageView控件。