Tengo problemas con mi proyecto, Ayudaaa!!!!

Publicado en 'Programación' por luis12313, 30 Jun 2012.





  1. luis12313

    luis12313 Miembro frecuente

    Registro:
    28 Jun 2010
    Mensajes:
    104
    Likes:
    8




    Hola gente, sucede que tengo problemas al implementar un sistema para mi curso de algoritmica III:cray:, porque por mas que intento no logro con la solucion, espero me puedan ayudar.Salu2

    Para que no se hagan bolas pondre todas mis clases con sus codigos:

    Clase Persona:

    Código:
    public abstract class Persona {
        
        private String codigo, nombres, apellidos, direccion, celular, e_mail;
        
        public Persona(String codigo, String nombres, String apellidos, String direccion, String celular, String e_mail) {
            this.codigo = codigo;
            this.nombres = nombres;
            this.apellidos = apellidos;
            this.direccion = direccion;
            this.celular = celular;
            this.e_mail = e_mail;
        }
    
        public Persona(String codigo, String nombres, String direccion, String celular, String e_mail){
            this.codigo = codigo;
            this.nombres = nombres;
            this.direccion = direccion;
            this.celular = celular;
            this.e_mail = e_mail;
        }
        
        public String getCodigo() {
            return codigo;
        }
    
        public void setCodigo(String codigo) {
            this.codigo = codigo;
        }
    
        public String getNombres() {
            return nombres;
        }
    
        public void setNombres(String nombres) {
            this.nombres = nombres;
        }
    
        public String getApellidos() {
            return apellidos;
        }
    
        public void setApellidos(String apellidos) {
            this.apellidos = apellidos;
        }
    
        public String getDireccion() {
            return direccion;
        }
    
        public void setDireccion(String direccion) {
            this.direccion = direccion;
        }
    
        public String getCelular() {
            return celular;
        }
    
        public void setCelular(String celular) {
            this.celular = celular;
        }
    
        public String getE_mail() {
            return e_mail;
        }
    
        public void setE_mail(String e_mail) {
            this.e_mail = e_mail;
        }
        
        public Persona(){
            
        }
    
        public abstract String RetornaNombre();
        
    }

    Clase Usuario:

    Código:
    public class Usuario extends Persona implements Comparable{
        
        private String usu;
        private String clave;
        
        public Usuario(String codigo, String nombres, String apellidos, String direccion, String celular, String e_mail, String usu, String clave) {
            super(codigo, nombres, apellidos, direccion, celular, e_mail);
            this.usu = usu;
            this.clave = clave;
        }
    
        public String getUsu() {
            return usu;
        }
    
        public void setUsu(String usu) {
            this.usu = usu;
        }
    
        public String getClave() {
            return clave;
        }
    
        public void setClave(String clave) {
            this.clave = clave;
        }
        
        @Override
        public String RetornaNombre() {
            throw new UnsupportedOperationException("Not supported yet.");
        }
        
        public int compareTo(Object o) {
    
            int result = 0;
    
            if (!this.equals(o)) {
                if (o instanceof Usuario) {
                    Usuario c = (Usuario) o;
                    if (this.getApellidos().compareTo(c.getApellidos()) < 0) {
                        result = -1;
                    } else if (this.getApellidos().compareTo(c.getApellidos()) > 0) {
                        result = 1;
                    }
                }
            }
    
            return result;
    
    
        }
        
        
    }
    Clase Arreglo_Usuario:

    Código:
    public class Arreglo_Usuario {
       
        protected ArrayList<Usuario> au;
    
        public Arreglo_Usuario(){
            au = new ArrayList<Usuario>();
        }
    
        public Usuario getUsuario(int i){
            return au.get(i);
        }
    
        public int Tamaño(){
            return au.size();
        }
    
        public void Agregar(String codigo, String nombres, String apellidos, String direccion, String celular, String e_mail, String usu, String clave){
            au.add(new Usuario(codigo, nombres, apellidos, direccion, celular, e_mail, usu, clave));
        }
    
        public void Elimina(int i){
            au.remove(i);
        }
    
        public void Modificar(int i, Usuario u){
            au.set(i, u);
        }
    
        public int Buscar(String nom){
    
            for (int i = 0; i < Tamaño(); i++) {
                if(nom.equalsIgnoreCase(getUsuario(i).getCodigo())){
                    return i;
                }
            }
    
            return -1;
        }
    
        public int BuscarNom(String nom){
    
            for (int i = 0; i < Tamaño(); i++) {
                if(nom.equalsIgnoreCase(getUsuario(i).getNombres())){
                    return i;
                }
            }
    
            return -1;
        }
    
        
        public void Ordenar(){
            Collections.sort(au);
        }
        
        
    }


    ----- mensaje añadido, 30-jun-2012 a las 08:53 -----

    Continuacion...

    Clase Archivo_Usuario:

    Código:
    public class Archivo_Usuario extends Arreglo_Usuario{
        
        private String nombre;
    
        public Archivo_Usuario(String nombre){
    
            this.nombre= nombre;
            lee();
    
        }
    
        private void lee() {
            try {
                FileReader fr = new FileReader(nombre);
                BufferedReader br = new BufferedReader(fr);
                String linea;
                StringTokenizer st;
                while( (linea=br.readLine())!= null){
                    st = new StringTokenizer(linea,";");
                    String codigo = st.nextToken();
                    String nombres = st.nextToken();
                    String apellidos= st.nextToken();
                    String direccion= st.nextToken();
                    String celular = st.nextToken();
                    String e_mail = st.nextToken();
                    String usu = st.nextToken();
                    String clave = st.nextToken();
                    Agregar(codigo, nombres, apellidos,direccion, celular, e_mail, usu, clave);
                }
    
            } catch (IOException ex) {
                Logger.getLogger(Archivo_Usuario.class.getName()).log(Level.SEVERE, null, ex);
            }
    
    
        }
    
        public void graba(){
            
            FileWriter fw;
            try {
                fw = new FileWriter(nombre);
                PrintWriter pw = new PrintWriter(fw);
                for (int i = 0; i < Tamaño(); i++) {                
                Usuario u = getUsuario(i);
                pw.println(u.getCodigo()+";"+u.getNombres()+";"+u.getApellidos()+";"+u.getDireccion()+";"+u.getCelular()+";"+u.getE_mail()+";"+u.getUsu()+";"+u.getClave());
                }
                
                pw.close();
    
            } catch (IOException ex) {
                Logger.getLogger(Archivo_Usuario.class.getName()).log(Level.SEVERE, null, ex);
            }
    
    
        }
        
    }
    GUI JIF_Mant_Usuarios:

    Código:
    Archivo_Usuario arcU;
        DefaultTableModel tbl;
        public JIF_Mant_Usuarios() {
            initComponents();
            arcU = new Archivo_Usuario("Archivos/db_Usuario.txt");
            lista();
        }
    
    private void btnregistrarActionPerformed(java.awt.event.ActionEvent evt) {                                             
    // TODO add your handling code here:
        File f = new File("Archivos/db_Usuario.txt");
        FileWriter fw = null;
        PrintWriter pw = null;
        try {
            fw = new FileWriter(f,true);
            pw = new PrintWriter(fw); 
            pw.println(txtUsuario.getText()+";"+txtClave.getText());
            JOptionPane.showMessageDialog(null, "Guardado Exitosamente","Proyecto Zafiro",2);
            limpiar();
        } catch (IOException ex) {
                System.out.println("Error al Abrir el Archivo");
        } finally {
            try {
                fw.close();
            } catch (IOException ex) {
                System.out.println("Error al cerrar el Archivo");
            }
        }
        
            
    }                                            
    
    public void limpiar(){
        txtUsuario.setText("");
        txtClave.setText("");
        txtUsuario.requestFocus();
    }
    
    private void lista() {
    
            tbl = new DefaultTableModel();
            tbl.setRowCount(0);
            tbl.setColumnIdentifiers(new Object[]{"CODIGO", "NOMBRES", "APELLIDOS", "DOMICILIO", "EMAIL", "CELULAR", "USUARIO", "CLAVE"});
            for (int i = 0; i < arcU.Tamaño(); i++) {
                Usuario usu = arcU.getUsuario(i);
                String cadena = usu.getCodigo() + "#" + usu.getNombres()
                        + "#" + usu.getApellidos() + "#" + usu.getDireccion()
                        + "#" + usu.getE_mail() + "#" + usu.getCelular()
                        + "#" + usu.getUsu() + "#" + usu.getClave();
                String[] datos = cadena.split("#");
                tbl.addRow(datos);
            }
    
            tblUsuarios.setModel(tbl);
        }
    GUI Inicio:

    Código:
    public Inicio() {
            initComponents();
            Icon imagen = new ImageIcon(getClass().getResource("/Imagenes/Candado.png"));
            lblFoto.setIcon(imagen);
            JFrame.setDefaultLookAndFeelDecorated(true);
            SubstanceLookAndFeel.setSkin("org.jvnet.substance.skin.CremeCoffeeSkin");
            SubstanceLookAndFeel.setCurrentTheme("org.jvnet.substance.theme.SubstanceBrownTheme");
            SubstanceLookAndFeel.setCurrentWatermark("org.jvnet.substance.watermark.SubstanceImageWatermark");
            SubstanceLookAndFeel.setCurrentWatermark(new SubstanceImageWatermark("Imagenes/1.png"));
            setTitle("INICIO SESION");
            setLocationRelativeTo(null);
        }
    
    private void btnloginActionPerformed(java.awt.event.ActionEvent evt) {                                         
    
        File f = new File("db_Usuario.txt");
        FileReader fr = null;
        String usuario =txtusuario.getText();
        String clave =String.valueOf(txtpass.getPassword());
        try {
            fr = new FileReader(f);
            BufferedReader br = new BufferedReader(fr);
            String linea;
            StringTokenizer st;
            boolean autoriza = false;
            while ((linea = br.readLine()) != null) {
                st = new StringTokenizer(linea, ";");
                st.nextToken();
                st.nextToken();
                st.nextToken();
                st.nextToken();
                st.nextToken();
                st.nextToken();
                String usu = st.nextToken();
                String cla = st.nextToken();
                
                /*String datos[] = linea.split(";");*/
                if (usuario.equalsIgnoreCase(usu) && clave.equalsIgnoreCase(cla)) {
                    autoriza = true;
                }
            }
            if (autoriza) {
                Principal p = new Principal();
                p.setVisible(true);
                this.setVisible(false);
            } else {
                JOptionPane.showMessageDialog(null, "Usuario Incorrecto","MENSAJE",2);
            }
        } catch (IOException ex) {
            System.out.println("Error al Abrir el Archivo");
        } finally {
            try {
                fr.close();
            } catch (IOException ex) {
                System.out.println("Error al cerrar el Archivo");
            }
        }
        
        
        
    } 
    Perdonen por ser tan explicito, lo que pasa es que ya me falta poco tiempo para terminar mi proyecto y no sé en que me eh podido equivocar.

    POr alguna razon cuando quiero ingresar por medio del login, me da error en java.util.StringTokenizer.nextToken y me vota error en java.util.NoSuchElementException.

    Espero em puedan ayudar salu2

    Código:
    Exception in thread "AWT-EventQueue-0" java.util.NoSuchElementException
        at java.util.StringTokenizer.nextToken(StringTokenizer.java:332)
        at Proyecto_Final.Inicio.btnloginActionPerformed(Inicio.java:177)
        at Proyecto_Final.Inicio.access$000(Inicio.java:29)
        at Proyecto_Final.Inicio$1.actionPerformed(Inicio.java:71)
    ....
     


  2. Knight7

    Knight7 Miembro nuevo

    Registro:
    24 Jun 2012
    Mensajes:
    5
    Likes:
    1
    Segun el log de errores que es este

    Código:
    Exception in thread "AWT-EventQueue-0" java.util.NoSuchElementException
        at java.util.StringTokenizer.nextToken(StringTokenizer.java:332)
        at Proyecto_Final.Inicio.btnloginActionPerformed(Inicio.java:177)
        at Proyecto_Final.Inicio.access$000(Inicio.java:29)
        at Proyecto_Final.Inicio$1.actionPerformed(Inicio.java:71)
    El problema este en la clase Inicio. al parecer en la línea 29 o 71, no tengo tu proyecto...así que deduciré en que línea está...

    Pero lo que deduzco es que la parte de códigoo que provoca el error es esta de aquí

    Código:
    try {
            fr = new FileReader(f);
            BufferedReader br = new BufferedReader(fr);
            String linea;
            StringTokenizer st;
            boolean autoriza = false;
            while ((linea = br.readLine()) != null) {
                st = new StringTokenizer(linea, ";");
                st.nextToken();
                st.nextToken();
                st.nextToken();
                st.nextToken();
                st.nextToken();
                st.nextToken();
                String usu = st.nextToken();
                String cla = st.nextToken();
                
                /*String datos[] = linea.split(";");*/
                if (usuario.equalsIgnoreCase(usu) && clave.equalsIgnoreCase(cla)) {
                    autoriza = true;
                }
            }
    
    Veras que si comentas todo el bloque del while tu proyecto dejara de arrojar esas excepciones.

    Lo que veo es que tratas de leer un archivo de texto y todo parece estar bien, peo detecto algunas anomalías..

    Aquí creas el objeto tokenizer para partir cada línea conforme vaya encontrando el símbolo ";"
    Código:
    st = new StringTokenizer(linea, ";");
    
    Supongo que ahora empezaras a capturar cada token que vayas encontrando, pero...

    Lo que no entiendo es para que haces esto

    Código:
    st.nextToken();
    st.nextToken();
    st.nextToken();
    st.nextToken();
    st.nextToken();
    st.nextToken();
    

    Aqui empiezas a recorrer el String capturando cada token, pero en ningun momento se lo asignas a un String. Es más lo haces 6 veces, no se porque...

    Creo que solo basta con que pongas esto

    Código:
    String usu = st.nextToken();
    String cla = st.nextToken();
    

    Bueno espero haberte ayudado
     
    Última edición: 1 Jul 2012
    A luis12313 le gustó este mensaje.
  3. luis12313

    luis12313 Miembro frecuente

    Registro:
    28 Jun 2010
    Mensajes:
    104
    Likes:
    8
    Gracias Knight7 por la ayuda, pero ya logre solucionar esa anomalia, en verdad muchas gracias :hi::biggrin:

    ----- mensaje añadido, 01-jul-2012 a las 23:41 -----

    [​IMG]


    [​IMG]


    [​IMG]
    Hola a todos, a modo de continuar con este tema, estaba pensando en que si me podrian ayudar a perfeccionar mi proyecto hecho en netbeans:biggrin:, sucede que ya lo termine pero aún me falta dar unos cuantos ajustes finales.

    Lo que pasa es que en JIF_Mant_Usuarios tengo algunos problemas para que se refresquen los datos en mi jtable al hacer click en Registrar, ademas si logran descargar mi proyecto y analizarlo bien veran que tengo otras anomalias mas.
    Espero sean muy amables como para ayudarme a perfeccionarlo, no sé como tomen esa idea y quien sabe quizas debatamos agreguemos mas formularios, metamos mas codigos, cambiemos el skin del proyecto para que se vea mas robusto y elegante.

    BUeno no sé como logren tomar esta idea, pero aqui les dejo el enlace: http://www.mediafire.com/?1kejbnog4gtr38t
     
    Última edición: 1 Jul 2012
  4. Smiki007

    Smiki007 Miembro de oro

    Registro:
    13 Set 2010
    Mensajes:
    5,714
    Likes:
    2,893
    Parese que es un programa comercial para las boticas/pharmacias, no un proyecto de un curso...:biggrin:
     
    Última edición: 3 Jul 2012
    A diego2012 y luis12313 les gustó este mensaje.
  5. luis12313

    luis12313 Miembro frecuente

    Registro:
    28 Jun 2010
    Mensajes:
    104
    Likes:
    8
    Bueno... :biggrin: lo tomare como un alago, pero y que dicen, me ayudan a perfeccionarlo?
     
  6. Smiki007

    Smiki007 Miembro de oro

    Registro:
    13 Set 2010
    Mensajes:
    5,714
    Likes:
    2,893
    Sorry, no soy especialista en java.:(
     
    A luis12313 le gustó este mensaje.
  7. erickxls

    erickxls Miembro maestro

    Registro:
    13 Set 2008
    Mensajes:
    842
    Likes:
    15
    es mas facil que te ayuden si lo cuelgas en github.