Java - Sobre usuario y contraseña

 
Vista:

Sobre usuario y contraseña

Publicado por SergioAB (16 intervenciones) el 09/01/2010 23:44:45
Hola a todos

Pues vuelvo, de nuevo, por aqui a pedir ayuda con mi intento de aprender a programar en Java :)
Intento preguntar cuando no encruntro la forma de solucionar el problema que tengo, buscando la solucion de algunas cosas, encuentras o apredes otras que pueden ser muy utiles, pero si no es molestia, os translado el caso en el que me encruntro en estos momentos.

Estoy haciendo un "simple" cuadro de usuario y password :), el tema es que creo la ventana, creo el campo JTextField para el usuario y el campo JPasswordField para la contraseña, incluyo a cada uno de ellos sus ActionListener, consigo que se lean los campos de cada uno (los imprimo por consola como se puede ver al ejecutar el listado) pero... tengo dos incongnitas.

En primer lugar, y tras tropecientas pruebas, no llego a dar con como es para comparar ambos campos, me explico, inserto un valor en el campo usuario y otro en el usuario contraseña, pues no se como hacer que valide uno y otro... me refiero a que pienso que debe de ser algo tipo (ejemplo generico): if (usuario.equals (contarsena) {...

Pero no consigo situarlo correctamente

En segundo lugar es que igualmente no consigo asociar un boton a los dos campos para que al pulsarlo, con su ActionLstener, lea los dos campos y realice tal comparacion :( como vereis en el listado que adjunto, lee los campos de forma independiente

En fin, supongo que no es una gran duda, pero para mi esta siendo un pequeño mundo :)

Os adjunto el listado que estoy realizando por si me podeis orientar sobre el mismo, ya que los ejemplos siempre son la via mas practica.. a mi parecer, claro ;)

Como siempre, agradeceros vuestro trabajo en esta comunidad y un afectuoso saludo

Sergio.

--- LISTADO ---

import java.awt.FlowLayout;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JLayeredPane;
import javax.swing.JPasswordField;
import javax.swing.JTextField;
import java.awt.*;
import java.awt.event.*;

public class intento_pass extends JFrame
{
JTextField campousuario;
JPasswordField campopass;
JLabel usuario;
JLabel pass;
JButton login;

public intento_pass()
{
JFrame.setDefaultLookAndFeelDecorated(true);
this.setSize(400,100);
this.setDefaultCloseOperation(EXIT_ON_CLOSE);
this.setResizable(false);
this.setLocationRelativeTo(null);

campousuario=new JTextField(10);
campopass = new JPasswordField(10);
usuario=new JLabel("Login");
pass=new JLabel("Contraseña");
login=new JButton ("Login");
EscuchaBoton eb =new EscuchaBoton();
campousuario.addActionListener(eb);
campopass.addActionListener(eb);
login.addActionListener(eb);




JLayeredPane panel_de_fondo = new JLayeredPane();
JLayeredPane panel_para_botones = new JLayeredPane();
panel_para_botones.setLayout(new FlowLayout());

panel_para_botones.add (usuario);
panel_para_botones.add (campousuario);
panel_para_botones.add (pass);
panel_para_botones.add (campopass);
panel_para_botones.add (login);
panel_para_botones.setSize(400,100);

panel_de_fondo.add(panel_para_botones,0);
this.setContentPane(panel_de_fondo);

this.setVisible(true);

}
public class EscuchaBoton implements ActionListener{
public void actionPerformed(ActionEvent e){

String cadena="";
String cadena2="";


if(e.getSource()==campousuario)
cadena=""+e.getActionCommand();
System.out.println(cadena);

if(e.getSource()==campopass)
cadena2="" +
new String( campopass.getPassword() );
System.out.println(cadena2);

}

}
public static void main(String args [])
{
new intento_pass();
}
}
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Sobre usuario y contraseña

Publicado por jack (18 intervenciones) el 10/01/2010 04:14:38
hola SergioAB
me alegra poder ayudarte de nuevo
mira prueba poniendo algo asi en el actionPerformed

if(e.getSource()==login)
{
if(campousuario.getText().equals(campopass.getPassword()));
{

}
}

esto funciona bien sin embargo arroja una pequeña advertencia de tipos incompatibles
para asegurar que la lectura de la contraseña sea correcta convertiremos el arrays de char que nos devuelve el campo de la contraseña a un String, para esto podes usar un ciclo for.

seria algo asi

if(e.getSource()==login)
{
String pass="";
for(int i=0;i<campopass.getPassword().length;i++)
{
pass+=campopass.getPassword()[i];
}
if(campousuario.getText().equals(pass));
{

}
}

espero que te sirva si tienes alguna duda la puedes poner aca en el foro o enviarla a mi correo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Sobre usuario y contraseña

Publicado por SergioAB (1 intervención) el 10/01/2010 10:08:52
Muchas gracias Jack, como siempre :)
En cuanto llegue a casa aplico esto que me comentas, ya estoy impaciente, suponia que el tema rondaba por la construccion del if con el uso del equals, pero no hacia la construccion correcta

De nuevo agradecido y afectuoso saludo :)

Sergio
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Sobre usuario y contraseña

Publicado por SergioAB (16 intervenciones) el 10/01/2010 21:41:59
Hola Jack y toda la comunidad
Intentando aplicar la base de lo que me comentas, escribo el siguiente listado modificado del que originalmente colgue, el caso es que debo de estar haciendo algo mal :(
He creado dos String nuevas, una para el usuario y otra para la password
El error del listado creo que esta en que el boton de login no lee los campos.. o no hace la comparativa.
Sin animo de ser pesado, a ver si se me puede ayudar a ver la luz al final del tunel :))

Gracias y saludos

---LISTADO---

import java.awt.FlowLayout;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JLayeredPane;
import javax.swing.JPasswordField;
import javax.swing.JTextField;
import java.awt.*;
import java.awt.event.*;

public class intento_pass extends JFrame
{
JTextField campousuario;
JPasswordField campopass;
JLabel usuario;
JLabel pass;
JButton login;

public intento_pass()
{
JFrame.setDefaultLookAndFeelDecorated(true);
this.setSize(400,100);
this.setDefaultCloseOperation(EXIT_ON_CLOSE);
this.setResizable(false);
this.setLocationRelativeTo(null);

campousuario=new JTextField(10);
campopass = new JPasswordField(10);
usuario=new JLabel("Login");
pass=new JLabel("Contraseña");
login=new JButton ("Login");
EscuchaBoton eb =new EscuchaBoton();
login.addActionListener(eb);




JLayeredPane panel_de_fondo = new JLayeredPane();
JLayeredPane panel_para_botones = new JLayeredPane();
panel_para_botones.setLayout(new FlowLayout());

panel_para_botones.add (usuario);
panel_para_botones.add (campousuario);
panel_para_botones.add (pass);
panel_para_botones.add (campopass);
panel_para_botones.add (login);
panel_para_botones.setSize(400,100);

panel_de_fondo.add(panel_para_botones,0);
this.setContentPane(panel_de_fondo);

this.setVisible(true);

}
public class EscuchaBoton implements ActionListener{
public void actionPerformed(ActionEvent e){

String cadena="sergio";
String cadena2="clave";


if(e.getSource()==login)
{
if(campousuario.getText().equals(cadena)&&(campopass.getPassword().equals(cadena2)));
{
System.out.println("Se cumplen condiciones");

}
}
else {
System.out.println("No se cumplen condiciones");
}

}

}
public static void main(String args [])
{
new intento_pass();
}
}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Sobre usuario y contraseña

Publicado por jack (18 intervenciones) el 11/01/2010 05:13:20
hola SergioAB
el problema esta en la advertencia que te da el getPassword intente usar el getText pero para el passwordfield esta como no seguro , lo ideal es que utilices el ciclo for como te explique en la respuesta anterior asi haces una lectura segura de la contraseña y no te presentara estos problemas
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Sobre usuario y contraseña

Publicado por SergioAB (16 intervenciones) el 11/01/2010 09:16:44
Gracias Jack, al volver del trabajo me pongo a ello :)

saludos!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Sobre usuario y contraseña

Publicado por Josh Santos Allemant (1 intervención) el 09/05/2013 00:43:29
necesito una guia completa
paso por paso
para crear un usuario y contraseña en Java
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar