Hola buenas tardes amigos, disculpen podrían ayudarme, tengo dos clases que llamo ControladorLogin que es el controlador de la vista login y ControladorPrincipal que es de la vista Principal(utilizando MVC), resulta que estoy creando una aplicación de escritorio en java y al iniciar sesión si funciona el evento del botón para entrar al menú principal, me deja entrar pero al cambiar de a la vista principal no me funcionan los botones, al parecer no funcionan los eventos de la vista principal.
Este es el código del controlador Login:
public void actionPerformed(ActionEvent e) {
try {
if (e.getActionCommand().equalsIgnoreCase("Acceder")) {
if (login.getTxtUsuario().isEmpty() || login.getTxtPassword().isEmpty()) {
JOptionPane.showMessageDialog(login, "Faltan campos por llenar");
} else {
if (modelo.loginAuth(Integer.parseInt(login.getTxtUsuario()), login.getTxtPassword())) {
vPrincipal = new VPrincipal();
CtrlLogin control = new CtrlLogin(vPrincipal, modelo);
vPrincipal.setControlador(control);
vPrincipal.setVisible(true);
}
}
}
código del controlador de la vista principal:
public void actionPerformed(ActionEvent e) {
try {
if (e.getActionCommand().equalsIgnoreCase("Salir")) { // Nombre del botón
System.out.println("Presiono el boton salir");
vPrincipal.dispose();
}
} catch (Exception ex) {
Logger.getLogger(CtrlPrincipal.class.getName()).log(Level.SEVERE, null, ex);
}
}
espero puedan ayudarme gracias.
Saludos
Tienes un addActionListener en el botón Salir?
Saludos,
Si, tengo estos métodos en la vista Principal
public void setControlador(CtrlLogin c) {
btnSalir.addActionListener(c);
}
public void setControlador(CtrlPrincipal cp) {
btnSalir.addActionListener(cp);
}
Hola veo que le seteas una clase del tipo CtrlLogin.
CtrlLogin control = new CtrlLogin(vPrincipal, modelo);
vPrincipal.setControlador(control);
Y me pregunto si no debes setearle uno del tipo CtrlPrincipal.
Ya que en el código del botón utilizas en el try catch
Logger.getLogger(CtrlPrincipal.class.getName()).log(Level.SEVERE, null, ex);
Quizás te serviría debuggear poniendo un break point en el método del evento.
Para ver si es invocado o no, aunque al parecer nunca llega hasta ahí.
Saludos,