从JButton获取鼠标单击事件的位置

时间:2014-06-24 01:45:47

标签: java jbutton mouselistener

我有这样的事情:

public void actionPerformed(ActionEvent a) {    
    ((JButton)a.getSource()).setBackground(Color.red);              
}

颜色变化成功,但我需要根据点击的按钮更改int数组中的值。如何获取在JButton数组中单击鼠标的位置的X和Y坐标?

1 个答案:

答案 0 :(得分:1)

一种方法:使用JButton的2D数组并通过嵌套for循环遍历数组以获取行和列值。例如......

int r = -1;
int c = -1;
for (int row = 0; row < buttons.length; row++) {
  for (int col = 0; col < buttons[row].length; col++) {
    if (buttons[row][col] == e.getSource()) {
      r = row;
      c = col;
    }
  }
}

编辑:其他选项(如MadProgrammer所述),使用Map将JButton或其Action映射到Color。