正如所有准备好的那样,这可能吗?例如类控制器有
@FXML
ImageView ImageViewArrays[];
在 Scene Builder ImageViewArrays[1] 中设置一个 ImageView 的 fx:id ?
正如所有准备好的那样,这可能吗?例如类控制器有
@FXML
ImageView ImageViewArrays[];
在 Scene Builder ImageViewArrays[1] 中设置一个 ImageView 的 fx:id ?
我不知道 SceneBuilder 1.1 中对控件数组有任何直接支持。
但是,如果您正在处理表单上的静态控件数组,那么正如 Riporter 所提到的,通过在控制器类的 Initialize() 方法中包含他提供的语句,在 FXML 加载操作期间生成控件数组是微不足道的。
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 混合以获得您想要的,当您的控制器类对象完全加载时,它仍然看起来像您(或其他程序员)创建了一个 ImageView 控件的数组列表在 FXML 中。
我认为 On this Way: 在控制器类中:
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 然后并集成为数组
ImageView Pic[]=new ImageView{s1,s2,s3,s4};