Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/361.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java ActionEvent JButton正文中无法访问int变量值_Java_Swing_Static_Integer - Fatal编程技术网

Java ActionEvent JButton正文中无法访问int变量值

Java ActionEvent JButton正文中无法访问int变量值,java,swing,static,integer,Java,Swing,Static,Integer,我的代码片段如下: static int i=0; JButton ar[]=new JButton[5]; for( i=0;i<5;i++) { ar[i]=new JButton(" Button number : "+i); ar[i].addActionListener((ActionEvent clicked) -> { System.out.println(" Clickevent detected on JB

我的代码片段如下:

static int i=0;
JButton ar[]=new JButton[5];
for( i=0;i<5;i++)
{
     ar[i]=new JButton(" Button number : "+i);
     ar[i].addActionListener((ActionEvent clicked) -> {
     System.out.println(" Clickevent detected on JButton number "+i);
});
panel.add(ar[i]);
static int i=0;
JButton ar[]=新JButton[5];
对于(i=0;i{
System.out.println(“在JButton编号上检测到Clickevent”+i);
});
新增(应收账款[i]);

在程序的输出中,它在每个实例中都打印“在JButton no.5上检测到Clickevent”,我不知道为什么会发生这种情况。

请在循环中的actionevent代码之后使用循环变量的副本,并打印该副本,并尝试在循环中声明循环变量。 像这样:

       JButton ar[]=new JButton[5];
for(int i=0;i<5;i++)
{
    ar[i]=new JButton(" Button number : "+i);
int ci=i;
ar[i].addActionListener((ActionEvent clicked) -> {
System.out.println(" Clickevent detected on JButton number "+ci);
});
panel.add(ar[i]);
}
JButton ar[]=新JButton[5];
对于(int i=0;i{
System.out.println(“在JButton编号上检测到Clickevent”+ci);
});
新增(应收账款[i]);
}

如果您进行这些更改,它将起作用。

希望这有助于感谢answer@ProgrammingGeek11如果解决方案可行,那么接受答案