for(final int i=0;i<box.length;i++){ //在匿名内部类要用到for循环中的局部变量,必须用final属性,但i要自增,这时又和final有冲突纠结要怎么解决啊???
box[i].addActionListener(new ActionListener()
{ @Override
public void actionPerformed(ActionEvent arg0) {
// TODO Auto-generated method stub
for(int j=0;j<i;j++){ //这个也是这种问题
if(box[i].isSelected()==true){
box[i+1].setSelected(false);
rbutton[i].setSelected(true);
}
else
bgroup.clearSelection();
}
}
});
在线等待麻烦大家了、、、、、
}
box[i].addActionListener(new ActionListener()
{ @Override
public void actionPerformed(ActionEvent arg0) {
// TODO Auto-generated method stub
for(int j=0;j<i;j++){ //这个也是这种问题
if(box[i].isSelected()==true){
box[i+1].setSelected(false);
rbutton[i].setSelected(true);
}
else
bgroup.clearSelection();
}
}
});
在线等待麻烦大家了、、、、、
}
中用普通变量,在外部定义一个成员变量
在for循环中将int值赋给成员变量,匿名内部类中用成员变量
import java.awt.event.ActionListener;import javax.swing.JButton;public class TestFrame { private JButton[] btns;
private MyListener listener; public TestFrame() {
btns = new JButton[10];
listener = new MyListener();
for (int i = 0; i < btns.length; i++) {
btns[i] = new JButton();
btns[i].addActionListener(listener);
}
} class MyListener implements ActionListener { @Override
public void actionPerformed(ActionEvent e) {
Object obj = e.getSource();
for (int i = 0; i < btns.length; i++) {
if (obj.equals(btns[i])) {
if (btns[i].isSelected() == true) {
// ...
} else {
// ...
}
break;
}
}
} }}
public class Test {
private interface test{
void print();
}
public static void run(test t){
t.print();
}
public static void main(String[] args){
for(final int[] i = {0};i[0] < 10;i[0]++){
Test.run(new test(){
public void print(){
System.out.println(i[0]);
}
});
}
}}
给你写个例子,自己看吧