2013-05-11 30 views

回答

2

我覺得是這樣的:在控制器類:

private ImageView s1; 
    @FXML 
    private ImageView s2; 
    @FXML 
    private ImageView s3; 
    @FXML 
    private ImageView s4; 
    @FXML 
    private ImageView s5; 

場景生成器設置FX:每個ImageView的,S1 ... S5的ID,然後和過渡階級作爲陣列

ImageView Pic[]=new ImageView{s1,s2,s3,s4}; 
2

我沒有意識到SceneBuilder 1.1中對控件數組的任何直接支持。

但是,如果您正在處理表單上的控件的靜態數組,那麼Riporter提到在FXML加載操作期間通過包含他在Initialize()方法中提供的語句生成控件數組很簡單你的控制器類。

Imageview[] m_pics = new Imageview[] {s1, s2, s3, s4, ...}; 

如果正在需要用動態生成的控制陣列的工作,仍然可以使用FXML來生成基本實例,從中可以創建在控制器類的初始化一個ArrayList()方法,例如:

private List<ImageView> m_pics; 

@FXML 
private ImageView iv1; 

,然後在初始化()方法:

private void Initialize() { 

    m_pics = new ArrayList<>(); 
    m_pics.add(iv1); 
    : 
    : 
} 

這樣,即使你必須FXML爲了得到你想要的,由時間控制器混合代碼類對象是完全加載的,它仍然看起來像你(或另一個程序員),就像你在FXML中創建了一個ImageView控件的數組列表。

相關問題