Ver Mensaje Individual
  #6 (permalink)  
Antiguo 13/04/2009, 12:56
Avatar de chuidiang
chuidiang
Colaborador
 
Fecha de Ingreso: octubre-2004
Mensajes: 3.774
Antigüedad: 19 años, 7 meses
Puntos: 454
Respuesta: Reto curioso con botones

Buenas:

El usar actionCommand() o getSource() en principio es indistinto, salvo por una sutil diferencia.

Imagina un botón de "salvar" típico en cualquier aplicación. Es posible que esa acción "salvar" esté disponible dentro de la misma aplicación en un menú, en un botón de una barra de herramientas y quizás en algún sitio más que se te ocurra. Si usas actionCommand, basta llamar setActionCommand("salvar") a todos los posibles botones, menús y chismes que tengan esa acción y una única comparación (actionCommand=="salvar") bastaría.

Código:
JMenuItem itemSalvar = new JMenuItem(...);
itemSalvar.setActionCommand("salvar");
...
JButton botonSalvar = new JButton(....);
botonSalvar.setActionCommand("salvar");
...
public void actionPerformed (ActionEvent e) {
    if ("salvar".equals(e.getActionCommand()) {
        // salvar.
    }
}

Con getSource() deberías poner tantas comparaciones como posibles chismes distintos puedan realizar la acción de salvar.

Código:
JMenuItem itemSalvar = new JMenuItem(...);
...
JButton botonSalvar = new JButton(....);
...
public void actionPerformed (ActionEvent e) {
    if ((e.getSource() == itemSalvar) ||
         (e.getSource() == botonSalvar) ) {
        // salvar.
    }
}

Se bueno.
__________________
Apuntes Java
Wiki de Programación