Java - Colocar invisible un botón de un frame, desde otra clase, control de accesos

 
Vista:
sin imagen de perfil

Colocar invisible un botón de un frame, desde otra clase, control de accesos

Publicado por anonymous (2 intervenciones) el 14/04/2019 09:21:04
Buen Dia

Realmente mi propósito es crear un control de accesos de usuario a cada botón ( ejemplo: boton guaradar, boton actualizar) y ventana en mi interfaz de mi programa. como se podrán imaginar habría que validar mas de 100 accesos. Sí ustedes saben una manera sencilla de hacerlo sería de gran ayuda por ahora tengo esto:

tengo una clase usuarios_accesos la cual tiene un método validar_accesos... esta clase , hace una consulta a la base de datos para mirar que códigos de acceso tiene este usuario que acabo de ingresar por un login. luego lo que hago es validar si es administrador, si lo es simplemente se abre la interfaz completa, pero si no lo es , empieza a validar los accesos.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
public void validar_permisos(String usuarioBD, String tipo_usuarioBD){
    int cont=0;
    String []usuario_acceso = new String [1];
    try {
        ResultSet rs= cn.SeleccionarDatos("cod_usuario,cod_acceso", "usuario_acceso", "cod_usuario='"+usuarioBD+"' ");
            while (rs.next()){
                    usuario_acceso[0]=rs.getString("cod_acceso");
                    cont++;
                    System.out.println(usuario_acceso[0]);
            }
            //es adminitrador??
            if ("1".equals(tipo_usuarioBD)) {
                modulos.setVisible(true);
            }else{
                for (int i = 0; i < cont; i++) {
                    if ("1".equals(usuario_acceso[i])) {
                        System.out.println("SI TIENE ACCESO");
                    }else{
                       modulos.Vfacturacionbtn();
                       System.out.println("no tiene acceso a la ventana");
                    }
                    if ("2".equals(usuario_acceso[i])) {
                       System.out.println("SI TIENE ACCESO  A PRODUCTOS");
                    }else{
                        modulos.Vproductosbtn();
                        System.out.println("no tiene acceso a la ventana");
                    }
                }
                modulos.setVisible(true);
            }
    }catch (SQLException ex) {
        System.out.print("ERROR EN LA CLASE USUARIO_ACCESO:  "+ex);
    }
}

Pero tengo un error en el for, valida los dos condicionales que tengo y después el programa saca error ... ademas al final de que valida trato de mostrar mi interfaz como si me hubiera guardado los visible(true).. pero creo que tampoco se hace así. igual no se si es la mejor manera de hacerlo ya que estos son solo dos pero tendría que validar mas de 100.... como puedo hacerlo mejor??

Como verán no se como habilitar y deshabilitar los botones de el otro frame desde esta clase. así que cree unos métodos en mi interfaz Principal que es el jframe de esta manera:

1
2
3
4
5
6
7
8
9
public void Vfacturacionbtn(){
    facturacion_boton.setVisible(false);
}
 
 
 
public void Vproductosbtn(){
    productos_boton.setVisible(false);
}

para así poder llamar a mis botones y ponerlos invisibles. ya que intente con getters y setters y no funciono y ahora así tampoco Gracias de antemano.

ME MENCIONARON ALGO DE EL PAQUETE JAVA.SECURITY....
SI PUEDEN DECIRME UNA MANERA SENCILLA DE USARLO COMO UN EJEMPLO O MAS INFORMACION, YA QUE CASI NO HAY INFORMACION DE JAVA.SECURITY

GRACIAS
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Rodrigo
Val: 2.041
Plata
Ha mantenido su posición en Java (en relación al último mes)
Gráfica de Java

Colocar invisible un botón de un frame, desde otra clase, control de accesos

Publicado por Rodrigo (623 intervenciones) el 14/04/2019 15:24:44
Tu arreglo usuario_acceso esta definido de tamano 1, y el ciclo en la linea 7 siempre sobreescribe lo que este' en el indice 0.
En la linea 8, se cuenta el numero de iteraciones del ciclo.

Luego en las lineas 15 y 16, se intenta visitar el arreglo usando ese contador como limte,
pero no existe un indice mayor que 0 para ese arreglo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar