之前我已经看过一些帖子,但是我找不到关于actionListeners的帖子。我正在尝试使用JButtons数组创建井字游戏。如果有可能,如何在使用for循环临时变量的同时向他们添加动作侦听器?感谢您的帮助。

JButton jb [] = new JButton[9];
int checkB [] = new int[9];
public SomethingSimple(){
    JPanel p1 = new JPanel();
   p1.setLayout(new GridLayout(3, 3, 5, 5));
   p1.setBackground(Color.red);
  for (int i = 0; i < jb.length; i++){
    checkB[i] = 0;
  }
  for (int i = 0; i < jb.length; i++){
      jb[i] = new JButton("");
      p1.add(jb[i]);
      jb[i].addActionListener(new ActionListener(){
           @Override
          public void actionPerformed(ActionEvent e){
              jb[i].setText("O");
          }
      });
  }
  add(p1);
 }


感谢大家的帮助,您给我一些解决方案!

最佳答案

在for循环内创建一个最终的int;您不能从类访问匿名类的局部变量。
解:

关于java - 在内部类修订中访问局部变量“i”?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/23330562/

10-12 05:38