gpt4 book ai didi

java - javafx 中无法访问按钮处理程序中的变量

转载 作者:行者123 更新时间:2023-12-02 02:42:13 24 4
gpt4 key购买 nike

下面是我的代码和变量 icircles[0][i]不可访问。有人可以解释一下为什么以及如何解决这个问题吗?

Button[] buttons=new Button[b.getRow()];
int i=0;
GridPane buttonsPane=new GridPane();
for(i=0;i<b.getRow();i++)
{
buttons[i]=new Button("Row"+(i+1));
buttonsPane.addColumn(i+1, buttons[i]);
buttons[i].setOnAction(new EventHandler<ActionEvent>() {
public void handle(ActionEvent event)
{
circles[0][i].text.setText("Clicked.");
}
});
}

最佳答案

您正在尝试从内部范围(方法本地匿名内部类)访问变量 - 它必须声明为最终变量。

你可以这样做:

for(i=0;i<b.getRow();i++)
{
buttons[i]=new Button("Row"+(i+1));
buttonsPane.addColumn(i+1, buttons[i]);
final index = i;
buttons[i].setOnAction(new EventHandler<ActionEvent>() {
public void handle(ActionEvent event)
{
circles[0][index].text.setText("Clicked.");
}
});
}

关于java - javafx 中无法访问按钮处理程序中的变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45273889/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com