Доступ к расположению кнопки в GridLayout

#java

#java

Вопрос:

У меня есть сетка кнопок, и я хочу знать, есть ли способ получить местоположение нажатой кнопки, у меня есть прослушиватель действий для кнопок, но мне нужны строка и столбец кнопки, которая была нажата, и я, кажется, не могу понять, как

Ответ №1:

Вы можете использовать

 JButton.setActionCommand(String actionCommand)
  

связать любую информацию, которую вы хотите, с кнопкой, чтобы вы могли закодировать некоторое значение, указывающее нужную вам информацию там.

Затем, когда вы вызываете свой ActionListener, вы можете извлечь его с помощью

 public void actionPerformed(ActionEvent ae) {
    String cmd = ae.getActionCommand();
    //based on cmd, do something
}
  

Ответ №2:

Один из относительно простых способов — поместить кнопки в 2D-массив, а затем выполнить итерацию по массиву с помощью пары вложенных циклов for, пока не найдете кнопку, которая соответствует текущей (через ActionEvent#getSource(). Тогда ваши строка и столбец являются индексами цикла.