Foros del Web » Programación para mayores de 30 ;) » Java »

Pasar valores de variables de una clase a otra

Estas en el tema de Pasar valores de variables de una clase a otra en el foro de Java en Foros del Web. Buenos dias, estoy empezando a programar en Java, he hecho el siguiente codigo: gesUsuario.java: Código HTML: public boolean encUsuario(String log_usua, String pas_usua){ boolean existe=false; conexion ...
  #1 (permalink)  
Antiguo 26/09/2014, 06:45
 
Fecha de Ingreso: octubre-2008
Mensajes: 268
Antigüedad: 16 años, 1 mes
Puntos: 3
Pasar valores de variables de una clase a otra

Buenos dias, estoy empezando a programar en Java, he hecho el siguiente codigo:

gesUsuario.java:

Código HTML:
public boolean encUsuario(String log_usua, String pas_usua){
        boolean existe=false;
        conexion cn = new conexion();
        classUsuario usu = new classUsuario();
        Connection con=cn.getConnection();
        
        try{
            sql="select * from sd_usuario where LOG_USUA='"+log_usua+"' and PAS_USUA='"+pas_usua+"'";
            stmt=con.createStatement();
            rs=stmt.executeQuery(sql);
            
            if(rs.next()){
                Principal prin = new Principal();
                usu.setNom_usua(rs.getString("NOM_USUA"));
                System.out.println("Aqui es donde setee la variable y aqui si se ve: "+usu.getNom_usua()+"... pero deberia verse en las otras clases pues ya esta seteada, el valor ya se le asigno y no lo hace");
                /*
                usu.setCod_usua(rs.getString("COD_USUA"));
                usu.setNom_usua(rs.getString("NOM_USUA"));
                usu.setApa_usua(rs.getString("APA_USUA"));
                usu.setAma_usua(rs.getString("AMA_USUA"));
                usu.setTel_usua(rs.getString("TEL_USUA"));
                usu.setEma_usua(rs.getString("EMA_USUA"));
                usu.setLog_usua(rs.getString("LOG_USUA"));
                usu.setPas_usua(rs.getString("PAS_USUA"));
                */
                existe=true;
            }
            rs.close();
            stmt.close();
        } catch (Exception e){
            System.out.println("Error 8 = "+e.getMessage());
        }
        return existe;
    }
classUsuario.java

Código HTML:
public class classUsuario {
    private String cod_usua;
    private String nom_usua;
    private String apa_usua;
    private String ama_usua;
    private String tel_usua;
    private String ema_usua;
    private String log_usua;
    private String pas_usua;

    /**
     * @return the cod_usua
     */
    public String getCod_usua() {
        return cod_usua;
    }

    /**
     * @param cod_usua the cod_usua to set
     */
    public void setCod_usua(String cod_usua) {
        this.cod_usua = cod_usua;
    }

    /**
     * @return the nom_usua
     */
    public String getNom_usua() {
        return nom_usua;
    }

    /**
     * @param nom_usua the nom_usua to set
     */
    public void setNom_usua(String nom_usua) {
        this.nom_usua = nom_usua;
    }

    /**
     * @return the apa_usua
     */
    public String getApa_usua() {
        return apa_usua;
    }

    /**
     * @param apa_usua the apa_usua to set
     */
    public void setApa_usua(String apa_usua) {
        this.apa_usua = apa_usua;
    }

    /**
     * @return the ama_usua
     */
    public String getAma_usua() {
        return ama_usua;
    }

    /**
     * @param ama_usua the ama_usua to set
     */
    public void setAma_usua(String ama_usua) {
        this.ama_usua = ama_usua;
    }

    /**
     * @return the tel_usua
     */
    public String getTel_usua() {
        return tel_usua;
    }

    /**
     * @param tel_usua the tel_usua to set
     */
    public void setTel_usua(String tel_usua) {
        this.tel_usua = tel_usua;
    }

    /**
     * @return the ema_usua
     */
    public String getEma_usua() {
        return ema_usua;
    }

    /**
     * @param ema_usua the ema_usua to set
     */
    public void setEma_usua(String ema_usua) {
        this.ema_usua = ema_usua;
    }

    /**
     * @return the log_usua
     */
    public String getLog_usua() {
        return log_usua;
    }

    /**
     * @param log_usua the log_usua to set
     */
    public void setLog_usua(String log_usua) {
        this.log_usua = log_usua;
    }

    /**
     * @return the pas_usua
     */
    public String getPas_usua() {
        return pas_usua;
    }

    /**
     * @param pas_usua the pas_usua to set
     */
    public void setPas_usua(String pas_usua) {
        this.pas_usua = pas_usua;
    }
    
JFrame: Inicio.java: El boton de Ingresar, a la hora de hacer el logeo debe validar que existe ese usuario y si lo encuentra, pues entrara al sistema, este sistema se llama Principal.java
Código HTML:
private void btn_conectarActionPerformed(java.awt.event.ActionEvent evt) {                                             
    String codigo=txt_usuario.getText();
    String clave=String.copyValueOf(txt_clave.getPassword());
    
    classUsuario u = new classUsuario();
    u.setLog_usua(codigo);
    u.setPas_usua(clave);
    
    gesUsuario gUsu = new gesUsuario();
    if(gUsu.encUsuario(u.getLog_usua(),u.getPas_usua())){
        Principal.nombre=u.getNom_usua();
        Principal prin = new Principal();
        System.out.println("La variable deberia verse aqui, pero sale NULL: "+u.getNom_usua());
        prin.setTitle("Bienvenido al sistema "+prin.nombre);
        prin.setVisible(true);
        this.dispose();
    }else{
        JOptionPane.showMessageDialog(this,"Usuario y/o Clave incorrectos");
    }
}                                            
Tabla de SQL:
Código HTML:
CREATE TABLE SD_USUARIO (
  COD_USUA VARCHAR(5) NOT NULL,
  NOM_USUA VARCHAR(30) NULL,
  APA_USUA VARCHAR(20) NULL,
  AMA_USUA VARCHAR(20) NULL,
  TEL_USUA VARCHAR(20) NULL,
  EMA_USUA VARCHAR(50) NULL,
  LOG_USUA VARCHAR(20) NULL,
  PAS_USUA VARCHAR(20) NULL,
  PRIMARY KEY(COD_USUA)
);
Casi todo funciona correctamente, la conexion a la base de datos, la funcion que busca a un usuario y lo encuentra, todo muy bien, el problema que tengo es:

SI BIEN LOGRO SETEAR LAS VARIABLES (en este caso es la variable nom_usua) ADEMAS PUEDO LEERLA EN LA MISMA CLASE EN LA Q LA HE SETEADO POR MEDIO DEL METODO GET, NO LOGRO LEER ESTA VARIABLE EN LA CLASE DEL JFrame: Inicio.java ¿COMO HAGO PARA LEER EN OTRAS CLASES LAS VARIABLES Q SETEO EN UNA CLASE ESPECIFICA?


Gracias a todos.

Última edición por ragde23fer; 26/09/2014 a las 07:09
  #2 (permalink)  
Antiguo 26/09/2014, 23:45
Avatar de HackmanC  
Fecha de Ingreso: enero-2008
Ubicación: Guatemala
Mensajes: 1.817
Antigüedad: 16 años, 10 meses
Puntos: 260
Sonrisa Respuesta: Pasar valores de variables de una clase a otra

Hola,

Posiblemente, usando el mismo concepto que usaste en la otra clase con los getters para obtener una variable privada,

gesUsuario.java:

Código:
classUsuario usu = new classUsuario();
public classUsuario getClassUsuario() {
  return usu;
}
public boolean encUsuario(String log_usua, String pas_usua){
        boolean existe=false;
        conexion cn = new conexion();
        // classUsuario usu = new classUsuario();
        Connection con=cn.getConnection();
        
        try{
            sql="select * from sd_usuario where LOG_USUA='"+log_usua+"' and PAS_USUA='"+pas_usua+"'";
            stmt=con.createStatement();
            rs=stmt.executeQuery(sql);
            
            if(rs.next()){
                Principal prin = new Principal();
                usu.setNom_usua(rs.getString("NOM_USUA"));
                System.out.println("Aqui es donde setee la variable y aqui si se ve: "+usu.getNom_usua()+"... pero deberia verse en las otras clases pues ya esta seteada, el valor ya se le asigno y no lo hace");
                /*
Inicio.java

Código:
private void btn_conectarActionPerformed(java.awt.event.ActionEvent evt) {                                             
    String codigo=txt_usuario.getText();
    String clave=String.copyValueOf(txt_clave.getPassword());
    
    classUsuario u = new classUsuario();
    u.setLog_usua(codigo);
    u.setPas_usua(clave);
    
    gesUsuario gUsu = new gesUsuario();
    if(gUsu.encUsuario(u.getLog_usua(),u.getPas_usua())){
        u = gUsu.getClassUsuario();
        Principal.nombre=u.getNom_usua();
        Principal prin = new Principal();
        System.out.println("La variable deberia verse aqui, pero sale NULL: "+u.getNom_usua());
La palabra 'new' significa 'nuevo', cada vez que la usas creas un nuevo objeto vacío de la clase. Los getters tambien sirven para leer valores privados de un objeto. Adicionalmente tienes que comprender que cada vez que llamas a getClassUsuario() en el mismo objeto sin llamar a encUsuario() previamente vas a obtener el mismo classUsuario.

Saludos,

Etiquetas: clase, programa, string, variables
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 22:19.