Para tutorías y/o asesorías virtuales sobre JAVA SE y/o MySQL, escríbeme al formulario de contacto.

BUSCA MÁS CONTENIDO AQUÍ:



Curso de JAVA: Cómo hacer un Login, con usuario y contraseña fijos (sin conexión a Base de datos)?




Al realizar una aplicación, en especial una que maneja información importante para el usuario y/o empresa que adquiere dicho programa, se hace necesario crear esquemas de seguridad como lo son en primera instancia el acceso al sistema mediante un usuario y contraseña.

Luego de haber aprendido en el capítulo anterior a agregar datos de un formulario a una tabla, y eliminarlos de la misma, en esta parte del curso aprenderemos a desarrollar un sencillo formulario de acceso o Login, el cual consta de un usuario y contraseña fijos; es decir, establecidos por el desarrollador en el código del software, lo que los hace inmodificables una vez se haya compilado el programa.

Explicación por VideoTutorial:



Explicación por Foto-Tutorial:

Procederemos a crear un nuevo formulario el cual llamaremos Login (te podría interesar ver cómo crear un proyecto, un paquete y un formulario), y a este le
agregaremos 2 JLabel (a uno le asignamos el texto “USUARIO”, y al otro el texto “CLAVE”), 1 JTextField (donde se digitará el usuario para ingresar al sistema), 1 JPasswordField (donde se digitará la contraseña para ingresar al sistema), y por último colocamos 1 JButton (a este le asignamos el texto “INGRESAR”):

Login, Formulario de acceso, Usuario, Contraseña, JAVA, Seguridad, Ingresar al sistema, Password


Login, Formulario de acceso, Usuario, Contraseña, JAVA, Seguridad, Ingresar al sistema, Password

Después lo que haremos será darle un nombre a cada componente, ej. :

Campo de texto usuario= txtUsuario
Campo de texto de la clave= jpassClave
Botón de ingreso= btnIngresar

Login, Formulario de acceso, Usuario, Contraseña, JAVA, Seguridad, Ingresar al sistema, Password

Luego damos doble clic sobre el botón “INGRESAR”, y borramos el comentario que trae por defecto:

Login, Formulario de acceso, Usuario, Contraseña, JAVA, Seguridad, Ingresar al sistema, Password

Login, Formulario de acceso, Usuario, Contraseña, JAVA, Seguridad, Ingresar al sistema, Password

Pegamos el siguiente código dentro del método del botón “INGRESAR”:


char clave[]=jpassClave.getPassword();

String clavedef=new String(clave);


if (txtUsuario.getText().equals("Administrador") && clavedef.equals("12345")){


                    this.dispose();


                    JOptionPane.showMessageDialog(null, "Bienvenido\n"
                    + "Has ingresado satisfactoriamente al sistema",   "Mensaje de bienvenida",
                    JOptionPane.INFORMATION_MESSAGE);


                    Formulario1 formformulario1 = new Formulario1();

                    formformulario1.setVisible(true);


            }else {


                    JOptionPane.showMessageDialog(null, "Acceso denegado:\n"
                    + "Por favor ingrese un usuario y/o contraseña correctos", "Acceso denegado",
                    JOptionPane.ERROR_MESSAGE);
           

            }

NOTA: Si deseas una explicación más detallada acerca de cada sección del código anterior puedes visitar el siguiente artículo: Código JAVA: Login, con usuario y contraseña fijos (sin conexión a Base de datos)





Lo que hacemos en el código es guardar el contenido del JPasswordField en un array tipo char, y luego convertimos ese array en un String. Seguidamente realizamos un condicional donde compararemos el contenido de lo que se haya digitado en la caja de texto de usuario y la clave que hemos convertido a String con anterioridad; esta comparación se hace con datos fijos (inmodificables por el usuario); en el caso dado que ambos datos sean correctos, se procederá a cerrar el formulario de acceso y seguidamente se mostrará un cuadro de diálogo dando la bienvenida al sistema y abriendo el formulario principal del programa:

Login, Formulario de acceso, Usuario, Contraseña, JAVA, Seguridad, Ingresar al sistema, Password


Login, Formulario de acceso, Usuario, Contraseña, JAVA, Seguridad, Ingresar al sistema, Password

Login, Formulario de acceso, Usuario, Contraseña, JAVA, Seguridad, Ingresar al sistema, Password


Si por el contrario digitamos mal los datos de ingreso, nos aparecerá un cuadro de diálogo, advirtiéndonos dicha situación:

Login, Formulario de acceso, Usuario, Contraseña, JAVA, Seguridad, Ingresar al sistema, Password

Si lo que estás necesitando es crear un formulario de acceso un poco más avanzado, te interesará ver nuestro post donde explicamos cómo crear un login con conexión a una base de datos.

Si deseas descargar el video junto con el fascículo del presente tema del Curso de JAVA, sólo debes dirigirte a nuestra Zona de Descargas y dar clic sobre el icono "Curso de JAVA Parte 10".
 
¿Quieres aprender a realizar aún más cosas y personalizar  tus programas hechos en el lenguaje de programación JAVA?, si tu respuesta es "Sí", puedes acceder a todos los tips que hemos estado publicando en este blog, dando clic aquí.

Si te fue de gran ayuda este material, no olvides compartirlo con tus amigos. 
Si tienes dudas o sugerencias al respecto; puedes dejarnos tus comentarios.
Bendiciones...




Comparte este artículo






Sobre El Autor

Eduardo Bastidas UH

Cristiano y Colombiano. Analista de Sistemas & Blogger.
Me motiva mucho el poder compartir día tras día lo que he aprendido y voy aprendiendo en el área de las Tecnologías de la Información y las Comunicaciones.

25 comentarios:

  1. Como crear un gestor de descargas que conecte desde mi app a cualquier tipo de extensión de email (hotmail, gmail, yahoomail, otros) y claro, poder entrar a cualquier de este tipo de email?
    Lo que quiero es crear una aplicación que pueda conectarse a cualquier tipo de correo electrónico y así poder descargar todos los archivos adjuntos en una carpeta que seleccionemos o en cualquier dispositivo, ayúdenme por favor!!!

    ResponderEliminar
  2. Respuestas
    1. De nada estimado visitante, es un gusto poder ayudarte :)

      Bendiciones...

      Eliminar
  3. oye amigo como puedo contactarte para pedir mas ayuda sobre programacion? gracias x subir tus videos dios de bendice :)

    ResponderEliminar
    Respuestas
    1. Saludos estimado visitante.
      Puedes dirigirte al formulario de contacto dando clic aquí, y una vez me llegue tu mensaje te estaré respondiendo lo más pronto posible.

      ¡CRISTO TE AMA!

      Bendiciones...

      Eliminar
  4. podes pasar el codigo fuente estoy haciendo un juego de ahorcado en java y el profesor me pide que al juego le añada usuario y contraseña para poder ingresar y lo hice pero cuando me sale el cartel de ingreso correcto esa ventana no se cierra y no puedo ingresar al juego osea necesito un codigo para cuando el usuario ingrese si es correcto permita accerder al juego y pues sino que no pueda accerder.

    ResponderEliminar
    Respuestas
    1. Saludos estimado Javier Soneira.

      Precisamente en este post se te explica lo que estás necesitando, en caso de que necesites entender un poco el código fuente, puedes encontrar la explicación del mismo dando CLIC AQUÍ.

      Si lo que necesitas es un login que te permita manejar varios usuarios y almacenarlos en una base de datos, puedes dirigirte al post:

      Curso de JAVA: Cómo crear un Login? (Con conexión a base de datos).

      Cualquier inquietud me comentas.

      ¡CRISTO TE AMA!

      Bendiciones...

      Eliminar
  5. Ya dos años y continua sirviendo! Con un pequeño warning, en la parte de
    txtUsuario.getText().equals("Admin") && jpassContrasena.equals("12345")
    me dice que .equals() on incompatible types
    Y me manda siempre el mensaje de error, nunca me aparece que ingresé con éxito
    alguna idea?

    ResponderEliminar
    Respuestas
    1. Saludos estimada Brenda.
      Debes primero capturar el contenido de tu JPasswordField y almacenarlo en un array tipo char y luego convertirlo en String, y este String es el que compararás con tu clave predeterminada, usando el método .equals():

      char clave[]=jpassClave.getPassword();
      String clavedef=new String(clave);

      Si necesitas entender un poco más este código, puedes ver la explicación de cada una de las líneas, dando CLIC AQUÍ.

      ¡CRISTO TE AMA!

      Bendiciones...

      Eliminar
  6. hola master lo realize el formulario y no tiene error , pero al momento de ejecucion me aparece este error ..
    Exception in thread "AWT-EventQueue-0" java.lang.NoClassDefFoundError: org/jdesktop/layout/GroupLayout$Group
    me podrias ayudar ? gracias

    ResponderEliminar
    Respuestas
    1. Saludos estimado visitante.

      Revisa los import de tu Clase (en la parte superior de la misma) y mira si hay algún error y borra el que te sale resaltado con una línea roja. Es posible que luego de que hagas eso, en alguna línea de tu código te salga error, pero encontrarás en la parte izquierda (en el caso de que uses NetBeans IDE) un bombillito al cual le darás clic y te saldrán varias opciones y escogerás la que diga importar.

      Si aún no logras corregir tu inconveniente, otro paso que puedes seguir es cambiar el Layout de tu Formulario JAVA, si no sabes cómo hacerlo, puedes ver la explicación dando CLIC AQUÍ.

      ¡CRISTO TE AMA!

      Bendiciones...

      Eliminar
  7. muy buen tutorial pero podrias enseñar hacer un login con diferentes tipos de usuarios (Administrador,usuario,Normal) en java con netbeans GRASIAS...

    ResponderEliminar
    Respuestas
    1. Saludo estimado Kevin, la mejor manera para implementar usuarios con distintos niveles de acceso, es usando un Login con Bases de datos, ya que podrás guardar en las tablas de la misma BD, los niveles y permisos que tendrán los usuarios en el programa que estés creando.

      Para saber cómo crear un Login con conexión a bases de datos, da ¡CLIC AQUÍ!

      ¡CRISTO TE AMA!

      Bendiciones...

      Eliminar

  8. String Usario = jTextFieldUsuario.getText(); //lee los datos que as introducido en el campo de texto jtextFieldUsuario
    String Contraseña = String.valueOf(jPasswordFieldContraseña.getPassword()); //lee los datos que as introducido en el campo Contraseña

    if (Usario.equals("Edinson") && Contraseña.compareTo("123456") == 0) {

    JOptionPane.showMessageDialog(this, " Bienvenido Al Sistema ");






    } else if (Usario.equals("") && Contraseña.equals("")) {

    JOptionPane.showMessageDialog(this, "Por favor rellene todos los campos...", "Verifique", JOptionPane.ERROR_MESSAGE);


    } else if (Usario.equals("Edinson")) {

    JOptionPane.showMessageDialog(null, "Error al ingresar, Contraseña Incorrecta"," Error ",JOptionPane.ERROR_MESSAGE);

    } else if (Contraseña.compareTo("123456") == 0) {

    JOptionPane.showMessageDialog(null, "Error al ingresar, Usuario Incorrecto","Error",JOptionPane.ERROR_MESSAGE);
    } else {
    JOptionPane.showMessageDialog(null, "Error al ingresar, Usuario y Contraseña Incorrecto","Error",JOptionPane.ERROR_MESSAGE);


    }

    ResponderEliminar
  9. Como podría hacer que un jmenuitem se habilite con un login

    ResponderEliminar
    Respuestas
    1. Saludos estimado visitante.

      De acuerdo a tu interrogante, tú lo que deseas hacer es que una vez ingreses a tu aplicación por medio de un Login, se pueda habilitar o quede deshabilitado un jmenuitem.
      Para ello, en el código del formulario de logueo, una vez compruebes que los datos de acceso sean correctos (clave y usuario), no sé que parámetros usarás pero podrías usar un condicional if donde verifiques que dependiendo del usuario (si el usuario es admin o no) procederás a aplicar la línea de código que te permita habilitar o deshabilitar el jmenuitem (Clic aquí para ver la línea de código).

      Bendiciones...

      Eliminar
  10. Hola me gustaria saber como puedo genrar solo 3 intentos al dicitar la clave y si pasa de los intentos como enviar un mensaje de clave bloqueada !

    ResponderEliminar
    Respuestas
    1. Saludos estimado visitante.
      Te voy a dar una idea general de lo que puedes hacer:

      1. Te recomiendo usar un Login que tenga conexión a base de datos, para saber cómo desarrollarlo procede a dar CLIC AQUÍ.

      2. Crea una variable de tipo int la cual puedes llamar "intentos", y debes inicializarla con valor de "0" (cero).

      3. Ahora, en el condicional "if/else" donde se verifica si digita bien o no los datos de ingreso, si los datos no son correctos luego de la línea de código que muestra el cuadro de diálogo (JOptionPane) que avisa un acceso denegado, deberás sumarle a la variable "intentos" un valor de "1" uno. De forma seguida, verificarás qué valor tiene la variable "intentos" y si dicho valor es igual a "3" (tres) mostrarás un cuadro de diálogo donde avisarás al usuario que la clave ha sido bloqueada.

      Te dejo la idea hasta este punto, una vez los desarrolles me avisas para explicarte lo siguiente que debes hacer.

      Bendiciones...

      Eliminar
  11. hola amigo, disculpe que te moleste solo tengo esta pequeña duda, quiciera poner en un jframe boton 1 y un boton 2, en el primer boton al momemnto de oprimir me ejecute este programa y tambien con el boton 2 pues el otro programa, ya lo intente pero me da un error que ya busque pero encuentro algo parecido gracias te mando el codigo funcionando individualmente gracias.


    codigo 1:

    package BresenhamPaq;
    import java.awt.*;
    import java.awt.event.*;
    import javax.swing.JFrame;

    public class Bresenhams extends JFrame {
    public static void main(String[] args) {
    Bresenhams bresenhans = new Bresenhams();
    }


    Bresenhams ()



    {super("Bresenham");

    addWindowListener(new WindowAdapter()

    {public void windowClosing(WindowEvent e){System.exit(0);}});

    setSize(340, 230);
    //aqui abajo el codigo del color
    getContentPane().setBackground(new java.awt.Color(255,0,0));
    //aqui el codigo de centrar pantalla
    Dimension pantalla = Toolkit.getDefaultToolkit().getScreenSize();
    int height = pantalla.height;
    int width = pantalla.width;
    setSize(width/2, height/2);
    setLocationRelativeTo(null);
    setVisible(true);
    add("Center", new CvBresenham());

    show();

    }
    }




    class CvBresenham extends Canvas
    { float rWidth = 10.0F, rHeight = 7.5F, pixelSize;
    int centerX, centerY, dGrid = 10, maxX, maxY;
    void initgr()
    {Dimension d;
    d= getSize();
    maxX = d.width - 1;
    maxY = d.height -1;
    pixelSize = Math.max(rWidth/maxX, rHeight/maxY);
    centerX = maxX/2; centerY = maxY/2;
    }

    int iX (float x ) {return Math.round(centerX + x/pixelSize);}
    int iY (float x ) {return Math.round(centerY + x/pixelSize);}
    //aqui codigo de pixel

    void drawLine (Graphics g, int xP, int yP, int xQ, int yQ)
    { int x = xP, y = yP, D = 0, HX = xQ - xP, HY = yQ - yP,
    c, M, xInc = 1, yInc = 1;
    if (HX < 0){xInc = -1; HX = -HX;}
    if (HY < 0){yInc = -1; HY = -HY;}
    if(HY <= HX)
    { c = 2 * HX; M = 2 * HY;
    for(; ;)
    { g.drawLine(x, y, x, y);
    if (x==xQ) break;
    x += xInc;
    D += M;
    if (D > HX) {y += yInc; D -= c;}
    }
    }

    else
    { c = 2 * HY; M = 2 * HX;
    for(; ;)
    { g.drawLine(x, y, x, y);
    if (y == yQ) break;
    y += yInc;
    D += M;
    if (D > HY) {x += xInc; D -= c;}

    }

    }

    }
    void showGrid(Graphics g)
    { for (int x = dGrid; x<=maxX; x+=dGrid)
    for (int y = dGrid;y<= maxY; y+=dGrid)
    g.drawLine(x, y, x, y);
    }

    public void paint(Graphics g)
    { initgr();
    showGrid(g);
    //metodo grip hace que se vean los puntos
    //
    drawLine(g, 150,100,100,200);
    drawLine(g,211,60,251,60);
    drawLine(g,211,60,211,100);
    drawLine(g,211,100,251,100);
    drawLine(g,251,100,251,140);
    drawLine(g,211,140,251,140);
    }



    }

    ResponderEliminar

  12. codigo 2.

    import javax.swing.*;
    import java.awt.*;

    public class TestFiguras extends JFrame{
    public TestFiguras(){
    setSize(400,400);
    setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    setLocationRelativeTo(null);
    setVisible(true);
    }

    public static void main(String a[]){
    new TestFiguras();
    }

    public void paint(Graphics g){
    g.drawOval(40, 40, 60, 60); //Dibuja un circulo
    g.drawRect(80, 30, 200, 200); // Dibuja un cuadrado
    g.drawRect(200, 100, 100, 200); // Dibuja un rectángulo
    }
    }





    muchas gracias y si tubiera otras dudas(cuanto me cobrarias solo por responder y explikar el codigo con comentarios muchas gracias amigo. Bendiciones

    ResponderEliminar
    Respuestas
    1. Saludos estimado Jussaviff Flores.

      Primeramente te recomiendo que le des un vistazo al post donde explico cómo abrir un formulario JAVA desde otro (CLIC AQUÍ PARA VERLO).

      En caso de que sigas teniendo inconvenientes, por favor escríbeme y envíame tu proyecto al correo "desarrollouh@hotmail.com".

      ¡CRISTO TE AMA!

      Bendiciones...

      Eliminar
  13. Hola amigo, excelente tutorial, me fue de gran ayuda, tengo una pregunta y espero me puedas responder, quiero hacer un login con base de datos, pero lo que quiero hacer es que, al momento de ingresar con cierto usuario, en el siguiente formulario me muestre el nombre del usuario, he investigado este tema por algún tiempo y no he encontrado material, aparte que hace poco empecé con programación.

    ResponderEliminar
    Respuestas
    1. Saludos estimado Isai Cervantes.

      Si deseas realizar un Login con conexión a base de datos, te recomiendo ver el post donde lo explicamos detalladamente, para ello da CLIC AQUÍ.

      Para lo otro que quieres hacer, de mostrar el "Nombre del Usuario" en el siguiente formulario, puedo deducir que te refieres a alguna de las 2 siguientes situaciones:

      1.El Nombre de Usuario que digitas en el Login como tal, ej. "User".
      2.El Nombre de la persona a quien se le ha asignado el usuario, ej. "Carlos Cortés".

      En el caso de que sea la primera situación, sólo debes proceder a capturar el contenido del JTextField ubicado en el Login, donde se ha digitado dicho usuario y asignárselo al componente (donde lo mostrarás) del formulario que vas a abrir.

      Si tu caso es el segundo, deberás igualmente capturar el contenido del JTextField localizado en el Login donde se ha digitado el usuario y usarlo para poder realizar una consulta a la base de datos, para así poder traer el nombre de la persona a la que pertenece dicho usuario y así mostrarlo en el siguiente formulario a abrir.

      Si necesitas obtener una explicación detallada sobre cómo consultar información en tu base de datos desde JAVA, puedes ver un artículo al respecto dando CLIC AQUÍ.

      Cualquier duda me comentas.

      ¡CRISTO TE AMA Y ESTÁ CONTIGO!

      Bendiciones...

      Eliminar
  14. amigo Dios te bendiga por todo lo que haces, tengo una pregunta y espero me la ayudes a resolver:
    tengo un software hecho en Java Swing que se conecta a una BD mySql alojada en CPANEL, pero cuando no hay internet la aplicación no funciona ni sirve para nada. Cómo puedo hacer para que corra así haya o no haya internet (sin que la opción sea un localHost ya que la info la requiero disponible online) ?

    ResponderEliminar
  15. agregar, eliminar, consultar, ingresar sin usar base de datos

    ResponderEliminar


RECIBIR NOTICIAS POR EMAIL


Suscríbete al boletín para recibir lo último en tu correo electrónico

¿NECESITAS AYUDA PARA PROGRAMAR EN JAVA SE Y MYSQL?