saber - Comando de acción de botón de Java
manual de programacion android pdf (1)
Puede usar AbstractButton # setActionCommand .
En tu ciclo:
buttons[i].setActionCommand(i+"");
Entonces recuperarás i
cuando uses getActionCommand
Nota: mencioné en un comentario sobre otra respuesta que crearía una nueva clase Mine
que extends JButton
que creo que es una solución mejor y más completa. Sin embargo, esto hace el trabajo bastante rápido.
Estoy creando un juego Minesweeper simple en Java. Tamaño 9x9.
Creo una serie de JPanels
y una serie de botones; Agrego cada botón a su respectivo JPanel
. luego agrego los JPanels
al JFrame
.
¿Cómo distingo entre cada botón en el evento de acción?
Aquí hay algo de mi código:
int gridx = 9;
int gridy = 9;
JButton[] buttons = new JButton[gridx*gridy];
JPanel[] jpanels = new JPanel[gridx*gridy];
public Minesweeper(){
super("Minesweeper");
setLayout(new GridLayout(9,9));
JPanel panel = new JPanel();
int i = 0;
for(i = 0; i<gridx*gridy; i++){
jpanels[i] = new JPanel();
buttons[i] = new JButton();
buttons[i].addActionListener(buttonEvent);
jpanels[i].setLayout(new GridLayout(1,1));
jpanels[i].add(buttons[i]);
add(jpanels[i]);
}
//buttons[67].setEnabled(false);
setSize(300,300);
setVisible(true);
}
La única forma en que puedo pensar en hacer esto es agregar texto al botón de esta manera:
buttons[i] = new JButton(i);
Luego llamando a getActionCommand()
pero no quiero que el texto aparezca en el botón. ¿Alguna otra idea?