而不是硬编码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;
答案 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);
}
}
}
}