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

Recorrer HashTable y sacar elemento

Estas en el tema de Recorrer HashTable y sacar elemento en el foro de Java en Foros del Web. Buenos días =) Tengo un JFrame con un formulario con 1 jTextField y 1 jPasswordField. Lo que necesito es comparar los elementos introducidos en el ...
  #1 (permalink)  
Antiguo 23/12/2010, 00:09
Avatar de oscarsb1988  
Fecha de Ingreso: abril-2010
Mensajes: 40
Antigüedad: 14 años
Puntos: 0
Recorrer HashTable y sacar elemento

Buenos días =)

Tengo un JFrame con un formulario con 1 jTextField y 1 jPasswordField. Lo que necesito es comparar los elementos introducidos en el jTextField y en el jPasswordField con lo que tiene el HashTable.

Lo que intento es recorrer el hashtable y que vaya leyendo cada fila por así decirlo. Alguna idea de como hacerlo?

Código JAVA:
Ver original
  1. Cliente.Cli.put("30948821-L","c1");
  2.         Cliente.Cli.put("18789600-X","c2");
  3.  
  4.         ClienteOro.CliOro.put("78951159-L","c3");
  5.  
  6.         // ENTRAR. Recorrer Hashtable y comparar el objeto y el campo Nombre/Password del objeto en cuestión
  7.  
  8.         int existe = 0;
  9.         int ind = 0;
  10.  
  11.         //Recorremos el hashtable de clientes y comprobamos Nombre/Contraseña
  12.  
  13.         for (int x=0;x<Cliente.Cli.size();x++)
  14.         {
  15.            
  16.             if (jTextField1.getText().equals(jTextField1.getText()))
  17.             {
  18.                 //ind = Cliente.Cli.containsKey(Cliente.Cli.get(x));
  19.             }
  20.  
  21.             String pass = new String(jPasswordField1.getPassword());
  22.  
  23.             if (pass.equals(Cliente.Cli.get(ind)))
  24.             {
  25.                 existe = 1;
  26.                 new Vcompra().setVisible(true);
  27.                 new Vloguin().setVisible(false);
  28.             }
  29.          }
  #2 (permalink)  
Antiguo 23/12/2010, 01:57
Avatar de chuidiang
Colaborador
 
Fecha de Ingreso: octubre-2004
Mensajes: 3.774
Antigüedad: 19 años, 6 meses
Puntos: 454
Respuesta: Recorrer HashTable y sacar elemento

Un Hashtable tiene un método keys() que te devuelve todas las claves como un Enumeration que puedes recorrer. También tienes un values() que te devuelve los valores.

Se bueno.
__________________
Apuntes Java
Wiki de Programación
  #3 (permalink)  
Antiguo 23/12/2010, 03:53
Avatar de oscarsb1988  
Fecha de Ingreso: abril-2010
Mensajes: 40
Antigüedad: 14 años
Puntos: 0
Respuesta: Recorrer HashTable y sacar elemento

Lo acabo de solucionar XD

Código JAVA:
Ver original
  1. if (ClienteOro.CliOro.contains(jTextField1.getText()))
  2.          {
  3.              String ClienteF = jTextField1.getText(); //Variable para pasar al nombre de Vfactura
  4.          }
  5.  
  6.          String pass1 = new String(jPasswordField1.getPassword());
  7.  
  8.          if (ClienteOro.CliOro.containsKey(pass1) == true)
  9.          {
  10.                 existe = 1;
  11.                 new Vcompra().setVisible(true);
  12.                 new Vloguin().setVisible(false);
  13.          }
  14.  
  15.         //Si no existe, mostramos mensaje de error.
  16.  
  17.         if (existe == 0)
  18.         {
  19.             JOptionPane.showMessageDialog(null, "Los datos introducidos no son correctos", "", JOptionPane.WARNING_MESSAGE);
  20.             jTextField1.setText("");
  21.             jPasswordField1.setText("");
  22.             jTextField1.requestFocus();
  23.             jPasswordField1.requestFocus();
  24.         }
  #4 (permalink)  
Antiguo 23/12/2010, 07:28
 
Fecha de Ingreso: octubre-2003
Mensajes: 3.578
Antigüedad: 20 años, 6 meses
Puntos: 51
Respuesta: Recorrer HashTable y sacar elemento

Cita:
Iniciado por oscarsb1988 Ver Mensaje
Código JAVA:
Ver original
  1. ...
  2.          if (ClienteOro.CliOro.containsKey(pass1) == true)
  3. ...
Aquí estás comprobando si el password es una de las claves de la hashtable, cuando en realidad los passwords son los valores, y además no estás comprobando que el password se corresponda al usuario introducido, si no que podría ser el de cualquiera. ¿Seguro que es correcto?

S!
__________________
Para obtener respuestas, pregunta de forma inteligente o si no, pregunta lo que quieras que yo contestaré lo que me dé la gana.

Etiquetas: recorrer
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 19:34.