Я думаю, что вы путаете B1 с кнопкой в списке и вызываете setText не той кнопкой.Если вы хотите изменить метку нажатой кнопки, быстрое решение будет.
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
System.out.println(" action performed!!");
B1 = (JButton)e.getSource();
B1.setText("X");
}
Вы должны были разделить ActionListener на другой класс, чтобы избежать путаницы, подобной этой.Чтобы применить текст для всех кнопок в списке, вы можете попробовать что-то вроде этого.
class MyActionListener implements ActionListener{
ArrayList<JButton> buttonList;
public MyActionListener(ArrayList<JButton> a) {
buttonList = a;
}
@Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
for(JButton jb: buttonList) {
jb.setText("X");
}
}
}
class One {
MyActionListener buttonListener;
...
public void GamePlay() {
...
if(s.equals("HUMAN")) {
buttonListener = new MyActionListener(myB);
for(JButton B1 : myB) {
B1.addActionListener(buttonListener);
}
...
}
}
По сути, создайте свой собственный слушатель действий, содержащий соответствующие данные, чтобы делать то, что вы хотите,