Что вам нужно может может быть достигнуто несколькими способами, используя HashMaps, 2D-массивы и т. д. и т. д. ... вот мое предложение:
Наследование: вам нужно теперь кнопки с 2 свойствами, которые не определены по умолчанию (цв и строки)
class MatrixButton extends JButton {
private static final long serialVersionUID = -8557137756382038055L;
private final int row;
private final int col;
public MatrixButton(String t, int col, int row) {
super(t);
this.row = row;
this.col = col;
}
public int getRow() {
return row;
}
public int getCol() {
return col;
}
}
вы должны наверняка панель, где вы можете добавить JButtons, теперь добавить вместо него MatrixButton
panel.add(MatrixButton);
затем добавить ActionListener
button1.addActionListener(this);
и при нажатии вы получаете координаты положения, делая
@Override
public void actionPerformed(ActionEvent ae) {
if (ae.getSource() == this.button1) {
System.out
.println(((MatrixButton) ae.getSource()).getRow() + "," + ((MatrixButton) ae.getSource()).getCol());
} else if (ae.getSource() == this.button2) {
// TODO
} else if (ae.getSource() == this.button3) {
// TODO
}
}
ты понял ответ? – ItamarG3
У вас есть знания с наследованием ??? –
* «Я пытаюсь добавить ActionListener к кнопкам, в которых хранится индекс кнопки.» * Я пытаюсь добавить ActionListener к кнопкам, в которых хранится индекс кнопки. В этом случае вы можете запросить компонент, соответствующий событию «ActionEvent.getSource()», а затем перебрать массив кнопок, пока этот компонент не будет равен текущим индексам. –