如何使用Mouse Listener查找数组坐标

时间:2015-06-20 03:45:57

标签: java arrays mouselistener

而不是硬编码64个按钮来创建一个电路板做了2D数组而我需要得到array coordinates。这是我尝试使用的代码和我得到的错误。

public void mousePressed(MouseEvent e)
    {
        JButton[][] clicked = (JButton[][])e.getSource();
        int x = clicked.length;
        int y = clicked[0].length;
        board[x][y].setIcon(selected);
    }

错误:

Exception in thread "AWT-EventQueue-0" java.lang.ClassCastException: javax.swing.JButton cannot be cast to [[Ljavax.swing.JButton;

1 个答案:

答案 0 :(得分:0)

我想出了如何不对每个选项进行硬编码,使用for loop作为动作侦听器并使用变量。

解决方案:

public void mousePressed(MouseEvent e)
{
    JButton clicked = (JButton)e.getSource();
    for(int x = 0; x<8; x++)
    {
        for(int y = 0;y<8;y++)
        {
            if(clicked == board[x][y])
            {
                occupied[x][y] = true;
                board[x][y].setIcon(selected);
            }
        }
    }
}