Foro sobre Java SE > Password vs textField
silo entendí es correcto
Debería ser de esta forma
String clave="radon";
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
if(pasword.equals(clave)){
JOptionPane.showMessageDialog(rootPane, "la clave es correcto");
} else {
JOptionPane.showMessageDialog(rootPane, "clave incorrecto");
}
}
saludos
Hola.
Si es un JPasswordField
String clave='ramon';
if(clave.equals(new String(tpassword.getPassword()))){
/////////////////77
}
Esto es porque lo que te retorna getPassword es un array de caracteres no un objeto String.
Nos cuentas
Saludos.
Fuente:
https://docs.oracle.com/javase/7/docs/api/javax/swing/JPasswordField.html
Hola jhosep, muchas gracias por responder
He probado como tu indicaste pero no funciona.
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
if(tcampodetexto.equals(new String(tpassword.getPassword()))){
JOptionPane.showMessageDialog(null,"Ha funcionado");
}
else
JOptionPane.showMessageDialog(null,"No funciona");
}
}
package components;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.Arrays;
public class NewJFrame extends javax.swing.JFrame {
private String clave = "radon";
public NewJFrame() {
initComponents();
jPasswordField1.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
char[] password = jPasswordField1.getPassword();
boolean equals = Arrays.equals(password, clave.toCharArray());
System.out.println(equals);
}
});
}
@SuppressWarnings("unchecked")
// <editor-fold defaultstate="collapsed" desc="Generated Code">
private void initComponents() {
jPasswordField1 = new javax.swing.JPasswordField();
setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
getContentPane().add(jPasswordField1, java.awt.BorderLayout.CENTER);
pack();
}// </editor-fold>
public static void main(String args[]) {
java.awt.EventQueue.invokeLater(new Runnable() {
@Override
public void run() {
new NewJFrame().setVisible(true);
}
});
}
// Variables declaration - do not modify
private javax.swing.JPasswordField jPasswordField1;
// End of variables declaration
}
Hola @djdimosa, creo que este mensaje ya no la veras, pero para quien interese.
la solución que te dio @choces es correcta, y la mía tambien, sin temor a equivocarme tcampodetexto es una variable de un JTextField, por eso no te sirve. porque lo que tienes que comparar es un String. tu código tendría que ser así:
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
if(tcampodetexto.getText().equals(new String(tpassword.getPassword()))){
JOptionPane.showMessageDialog(null,"Ha funcionado");
}
else
JOptionPane.showMessageDialog(null,"No funciona");
}
}
Saludos.
Hola jhosep, muchas gracias por ineterés de ayurme, he probado la ultima opcion que indicaste y me ha funcionado muy bien.
:)
Gracias...
Hola
Me pueden ayudar a resolver este inconveniente:
Estoy comparando Password Field con un String de la siguiente forma
String clave='ramon';
if(clave.equals(tpassword.getPassword())){
/////////////////77
}
resulta que nunca me van a coincidir porque los Password Field tienen algun tipo de encriptacion.
¿Como puedo hacerlo?