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();
}
}
});
在线等待。。。麻烦大家了、、、、、
}
------解决方案--------------------
- Java code
for(final int i=0;i<box.length;i++)
------解决方案--------------------
哪有想你这样批量添加 ActionListener 的
给你个批量监听的例子,你看看吧
- Java code
import java.awt.event.ActionEvent;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; } } } }}
------解决方案--------------------
- Java code
public class Test { private interface test{ void print(); } public static void run(test t){ t.print(); } public static void main(String[] args){ for([color=#FF0000]final int[] i = {0};i[0] < 10;i[0]++[/color]){ Test.run(new test(){ public void print(){ System.out.println([color=#FF0000]i[0][/color]); } }); } }}
------解决方案--------------------
想加颜色,没加上...就是把final int i 换成 final int[] i 的一维数组,所有用i的地方用i[0]代替