使用 mouseListener 改变 JButton 的颜色

Changing Color of JButton with mouseListener

我正在尝试制作一个简单的井字游戏。要创建我使用的网格和 JButtons 数组。

mouseClicker m1 = new mouseClicker();//check for click

for (int i=0; i<9;i++) {//create buttons
            buttons[i] = new JButton();
            buttons[i].addMouseListener(m1);
            gameSpots.add(buttons[i]);
            
        }

为了跟踪用户的点击,我为按钮设置了一个 mouseListener。

public class mouseClicker extends MouseAdapter{ 
        public void mousePressed(MouseEvent e) {
              System.out.println(e.getSource());
              System.out.println(e.getX()+", "+e.getY());
              System.out.println();  
           }
    }

目前我可以使用它打印每个单击的 JButton 的来源,但我不知道如何使用此信息修改相应的按钮(例如向单击的按钮添加 x)。我如何使用 JButton 源代码来实现这一点?

你可以setText or setIcon:

public class MouseClicker extends MouseAdapter {    
    public void mousePressed(MouseEvent e) {
        System.out.println(e.getSource());
        System.out.println(e.getX() + ", " + e.getY());
        System.out.println();
        ((JButton)e.getSource()).setText("X");
    }
}