Implementación de actionListener en una clase.

aalvarez
06 de Abril del 2010
Hola a todos.
He creado una clase que implementa el actionListener de una aplicación con gui (java swing). Transcribo mi clase porque hay algo que no me cuadra. Seguramente exista una forma más eficiente de implementarla ya que de seguir por este camino tendría que crear un if para cada acción o evento de la aplicación; pero ahora mismo no se me ocurre otra forma de hacerlo. Os copio y pego y me comentáis. Gracias.

public class GestorEventos implements ActionListener {

VistaApl interfazOrigen; //instancia de VistaApl que ha llamado al GestorDeEventos
ControladorApl controller;
JPanel contenedor;

public GestorEventos(VistaApl interfaz){
this.interfazOrigen = interfaz;
controller = ControladorApl.getInstance();
controller.setInterfaz(interfaz);


}
public GestorEventos(Component panel){
this.interfazOrigen = null;
this.contenedor= (JPanel) panel;
controller = ControladorApl.getInstance();


}

public void actionPerformed(ActionEvent e) {

controller = ControladorApl.getInstance();

// TODO Auto-generated method stub
System.out.println(" ,,......" +e.getActionCommand());
String origen = e.getActionCommand();
if (origen==(ResourceBundle.getBundle("Etiquetas").getString("etiqueta_ayuda_creditos"))){
System.out.println("hemos seleccionado créditos");
controller.crearCreditos();
controller.manejaVerCreditos();

}
if (origen==(ResourceBundle.getBundle("Etiquetas").getString("etiqueta_sesion_abrir"))){
System.out.println("hemos seleccionado abrir sesion");
controller.crearSession();
controller.manejaVerInicioSesion();
}
if (origen==(ResourceBundle.getBundle("Etiquetas").getString("etiqueta_sesion_cerrar"))){
System.out.println("hemos seleccionado cerrar");
}
if (origen==(ResourceBundle.getBundle("Etiquetas").getString("etiqueta_boton_conectar"))){
System.out.println("hemos seleccionado conectar a la base de datos");
}

}

}