Pass variables to ActionListener in Java

后端 未结 3 1711
庸人自扰
庸人自扰 2020-12-03 23:18

I have something like the code below:

    for(int i=0;i<10;i++){
        button=new JButton(buttons[i]);
        button.addActionListener(new ActionListen         


        
3条回答
  •  星月不相逢
    2020-12-03 23:57

    The variable i is in fact in the scope of the ActionListener, but since you're trying to use a local variable in an inner class, the variable must be final. So, you could use a final variable for this:

    for(int i=0;i<10;i++){
        final int index = i;
        button=new JButton(buttons[i]);
        button.addActionListener(new ActionListener(){
            public void actionPerformed(ActionEvent e) {
                setPage(index);
            }
        });
        menu.add(button);
    }
    

提交回复
热议问题