【发布时间】:2016-01-24 06:10:08
【问题描述】:
我在 JavaFX 中创建了一个 ComboBox 数组和一个按钮数组。我想分配数组的每个按钮,对相应索引的 ComboBox 做一些事情:
for(int i = 0; i < 6; i++) {
colorBox[i] = new ComboBox();
colorBox[i].getItems().addAll("Blue", "Orange", "Green", "Yellow", "White", "Red");
randomColorBtn[i] = new Button("Random color");
randomColorBtn[i].setOnAction((ActionEvent event) -> {
colorBox[i].setValue(getRandomPlayerIconColor());
});
}
因此,每当您单击“随机”按钮时,相应的 ComboBox 都会设置为随机颜色。但是,当我尝试这样做时,我得到了错误
从 lambda 表达式引用的局部变量必须是 final 或有效 final
我知道错误源于我使用变量 i,但我该如何解决这个问题?
提前致谢。
【问题讨论】:
标签: java arrays button javafx actionevent