▷ 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.
CURSO DE JAVA: Login (Usuario y Clave / Estáticos) |
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 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”):
Después lo que haremos será darle un nombre a cada componente, ej. :
Campo de texto de la clave= jpassClave
Botón de ingreso= btnIngresar
Luego damos doble clic sobre el botón “INGRESAR”, y borramos el comentario que trae por defecto:
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:
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:
Si por el contrario digitamos mal los datos de ingreso, nos aparecerá un cuadro de diálogo, advirtiéndonos dicha situación:
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".
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...
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?
ResponderBorrarLo 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!!!
buena amigo me salio gracias
ResponderBorrarDe nada estimado visitante, es un gusto poder ayudarte :)
BorrarBendiciones...
oye amigo como puedo contactarte para pedir mas ayuda sobre programacion? gracias x subir tus videos dios de bendice :)
ResponderBorrarSaludos estimado visitante.
BorrarPuedes 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...
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.
ResponderBorrarSaludos estimado Javier Soneira.
BorrarPrecisamente 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...
Ya dos años y continua sirviendo! Con un pequeño warning, en la parte de
ResponderBorrartxtUsuario.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?
Saludos estimada Brenda.
BorrarDebes 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...
Tengo un problema en esta linea char clave[]=botoniniciar.getPassword( getPassword me marca error
Borrarhola master lo realize el formulario y no tiene error , pero al momento de ejecucion me aparece este error ..
ResponderBorrarException in thread "AWT-EventQueue-0" java.lang.NoClassDefFoundError: org/jdesktop/layout/GroupLayout$Group
me podrias ayudar ? gracias
Saludos estimado visitante.
BorrarRevisa 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...
muy buen tutorial pero podrias enseñar hacer un login con diferentes tipos de usuarios (Administrador,usuario,Normal) en java con netbeans GRASIAS...
ResponderBorrarSaludo 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.
BorrarPara saber cómo crear un Login con conexión a bases de datos, da ¡CLIC AQUÍ!
¡CRISTO TE AMA!
Bendiciones...
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);
}
Como podría hacer que un jmenuitem se habilite con un login
ResponderBorrarSaludos estimado visitante.
BorrarDe 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...
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 !
ResponderBorrarSaludos estimado visitante.
BorrarTe 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...
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.
ResponderBorrarcodigo 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);
}
}
ResponderBorrarcodigo 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
Saludos estimado Jussaviff Flores.
BorrarPrimeramente 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...
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.
ResponderBorrarSaludos estimado Isai Cervantes.
BorrarSi 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...
amigo Dios te bendiga por todo lo que haces, tengo una pregunta y espero me la ayudes a resolver:
ResponderBorrartengo 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) ?
agregar, eliminar, consultar, ingresar sin usar base de datos
ResponderBorrarhola, pregunta, si el usuario no escribe "Administrador" sino "administrador"? como se haria en el if para que acepte las dos opciones?
ResponderBorrarif (Usario.equals("Edinson") o ("edinson")...
gracias!!
Saludos estimado MAlex RM, gracias por escribirnos.
BorrarTe invitamos a que te suscribas a nuestro Canal de YouTube sobre Tecnología y Desarrollo de Software, dando clic aquí.
Para lograr que te acepte la opción de que puedas escribir el usuario también en minúscula o mayúscula y te permita ingresar, deberás reemplazar el método ".equals()" por ".equalsIgnoreCase()".
¡Sólo en CRISTO hay SALVACIÓN!
¡CRISTO te Ama!
¡Feliz año nuevo para ti y toda tu familia! :)
Bendiciones...
Hola, muchas gracias por la información. Solo me queda una pregunta, ¿cómo le haría para que pudiera controlar diferentes JFrame? ,por ejemplo, tengo que abrir un JFrame registrar y que cuando lo cierre no se cierre todo el programa, solo que me regrese a un punto anterior y así con otros JFrame. Gracias
ResponderBorrarSaludos estimado Edgar Soto, te recomiendo que veas el siguiente post para que logres tu objetivo:
BorrarCódigo JAVA: Cerrar un formulario de forma independiente y/o Salir del Sistema.
Cualquier duda me comentas.
¡CRISTO TE AMA!
Bendiciones...
QUIERO SABER EL CODIGO PARA REGISTRO DE TIEMPO DE CUANDO INGRESO AL SISTEMA BASE DE DATOS PHPMYADMI Y ENLAZO CON NETEBEATS SE AGRADECE SU AYUDA ..
ResponderBorraroda amikos
ResponderBorraroda amikito
BorrarGracias. me sirvió de mucho
ResponderBorrarola buenos dias como ago para crear un logging con usuario y contraseña me pueden ayudar por favor...Gracias
ResponderBorrarIf given a choice, a person would mostly prefer to eat at home rather than going out to the petrol pumps after a very long day. That is why on-demand fuel delivery apps fit in like a puzzle; they make life easier for the users! Get in touch with Appilab for fuel delivery app development.
ResponderBorrarhttps://lilacinfotech.com/products/lilac-cabture
ResponderBorrarOur taxi dispatch software development allows your customers to access the list of licensed cabs that are nearby. You can see the cost of each type of cab service. Your consumers can even access the road map of their destination. Besides, our program is built separately for your clients, taxi drivers, and administrators.