Problema con código para verificar usuario y contraseña dando acceso con 3 inten

Iniciado por MANUELGRAN, 18 Febrero 2013, 17:51 PM

0 Miembros y 1 Visitante están viendo este tema.

MANUELGRAN

Buen dia, espero por favor me puedan ayudar
Se me ha pedido realizar un código que mostrando un mensaje pide nombre de usuario y con otro mensaje contraseña, se deben verificar con alguna establecida por uno mismo y permitir acceso notificado en un contenedor de texto: aqui les presento el código, no me quiere entrar en bien en el ciclo creo en el If:



   import java.awt.Container;
import javax.swing.*;
   public class ingreso extends JApplet{
       // inicializar el subprograma, obtener la entrada del usuario y crear GUI
       @SuppressWarnings("static-access")
      public void init()      
       {
      int cuantos=3;
       Object Float;
       String String1;
      String String2;
        JTextArea areaSalida = new JTextArea();
      do {
         String s1 = JOptionPane.showInputDialog("Introduzca su nombre de USUARIO:" );
           String s2 = JOptionPane.showInputDialog("Introduzca su CONTRASEÑA" );
        
         if(String.valueOf(s1).compareTo("manuel")==0 && String.valueOf(s2).compareTo("arroyo")==0)
           //if (s1=="manuel" && s2 =="arroyo")
         {     
         areaSalida.setText( "SU NOMBRE DE USUARIO Y CONTRASEÑA COINCIDEN, BIENVENIDO");   
         Container contenedor = getContentPane();
          contenedor.add(areaSalida );
          System.out.println("mmmmmmmmmmm");
          cuantos=0;
         }
         else
         {     
            cuantos--;
            areaSalida.setText( "SU NOMBRE DE USUARIO Y CONTRASEÑA NO COINCIDEN, DIGITE AMBAS CORRECTAMENTE, SOLO LE RESTA: " +cuantos+"\tINTENTOS ");
            Container contenedor = getContentPane();
             contenedor.add(areaSalida );
             System.out.println("mmmmmmmmooooooooommm");
         }
       } while (cuantos>0);
      
      areaSalida.setText("LO SENTIMOS, HA INGRESADO ERRONEAMENTE SUS DATOS 3 VECES, HASTA NUNCAAAAAAAAAAAAAAAAAAAAAAAAA");
      Container contenedor = getContentPane();
       contenedor.add(areaSalida );
       }
      }

BEATMASTER

no se si sea muy necesario usar String.valueOf con tu cadena ya que arriba defines que ya es un string intenta quitando eso y dejandolo asi

if(s1.compareTo("manuel")==0 && s2.compareTo("arroyo")==0)

ahora otra cosa talvez si este funcionando solo que si te fijas sea cual sea el resultado al salir del ciclo siempre muestras el mensaje

areaSalida.setText("LO SENTIMOS, HA INGRESADO ERRONEAMENTE SUS DATOS 3 VECES, HASTA NUNCAAAAAAAAAAAAAAAAAAAAAAAAA");
Container contenedor = getContentPane();
contenedor.add(areaSalida );

igual y saliendo del ciclo deberías de validar cual fue el resultado de lo que hiciste tal vez ingreso bien pero le muestras el mensaje de que se equivoco.
por ultimo supongo este pedazo de código es algo como de pruebas verdad? de lo contrario déjame decirte que es una de las peores practicas hacer una validación de contraseña de esa forma saludos ;)