I changed your code, leaving checUser
as boolean
and returning administrador
. Thank you very much!
public class Logica {
public static boolean administrador = false;
public boolean checkUser (int usIngresado, String pwdIngresado) {//determinación de Admin
int usuario = usIngresado , usAdmin = 39830638, usRec = 16866983;
String pass = pwdIngresado, pwdAd = "admin", pwdRec = "user";
if (usuario == usAdmin && pass.equals(pwdAd)) {
System.out.println("Ingresa en administrador");
administrador = true;
}
System.out.println("estado administrador: " + administrador);
return administrador;
}
public boolean getAdministrador () {
return administrador;
}
public void setAdministrador(boolean administrador) {
this.administrador = administrador;
}
}
What I had in MenuPpal
was:
public class MenuPpal extends JFrame {
//saqué todo lo que
//corresponde a la importación
//de clases gráficas
if (admin.getAdministrador()) {
btnGestUsrs.setEnabled(true);//habilito el botón
}
else {
btnGestUsrs.setEnabled(false);//no habilito el botón
}
}
THE SOLUTION:
Although there are people who may seem intuitive or very easy, after unraveling ideas, all I had to do was invoke that attribute directly, plain and simple. Here is my change to if
above.
public class MenuPpal extends JFrame {
Logica admin = new Logica();
//saqué todo lo que
//corresponde a la importación
//de clases gráficas
if (Logica.administrador) {//si quiero saber si es true el boolean de la condición no es necesario hacerla explicita, por eso no pongo el (== true), ahora si lo que me interesa es saber si es false, si debo poner la condición completa
btnGestUsrs.setEnabled(true);//habilito el botón
}
else {
btnGestUsrs.setEnabled(false);//no habilito el botón
}
}
And the most important thing about my problem was when I instantiated the method that saved the value in administrador
, it was below the window opening where I requested the value of administrador
.
the code that affected me is this, that I was in a third class (a jframe) that I never noticed.
log.setUsIngresado(Integer.parseInt(ci));
log.setPwdIngresado(pass);
boolean validar = ValCed.esCIValida(ci);
if (validar == true && log.Loggeo(log.getUsIngresado(), log.getPwdIngresado())) {
MenuPpal abrir = new MenuPpal();
abrir.setVisible(true);
LogIn.this.dispose();
}
else {
lblCedValida.setText("Datos No Válidos");
}
usr.setUsIngresado(Integer.parseInt(ci));
usr.setPwdIngresado(pass);
usr.checkUser(usr.getUsIngresado(), usr.getPwdIngresado());//así nunca paso los parámetros ni logro ejecutar el método para darle el valor a administrador
}
});
btnIngresar.setBounds(201, 144, 89, 23);
contentPane.add(btnIngresar);
This is the correction:
log.setUsIngresado(Integer.parseInt(ci));
log.setPwdIngresado(pass);
boolean validar = ValCed.esCIValida(ci);
usr.setUsIngresado(Integer.parseInt(ci));
usr.setPwdIngresado(pass);
usr.checkUser(usr.getUsIngresado(), usr.getPwdIngresado());//aquí es donde paso los parámetros para darle valor a administrador
if (validar == true && log.Loggeo(log.getUsIngresado(), log.getPwdIngresado())) {
MenuPpal abrir = new MenuPpal();
abrir.setVisible(true);
LogIn.this.dispose();
}
else {
lblCedValida.setText("Datos No Válidos");
}
}
});
btnIngresar.setBounds(201, 144, 89, 23);
contentPane.add(btnIngresar);
Basic Concept of Programming: set of ORDINED ORDERS !!! Never forget that, in what order are your orders! Thanks to those who helped me!