Reputation: 11
I am coding a login UI page which requires users to enter their credentials, however the line of code that is meant to "hide" the characters they enter in the password field is not working. I am coding using Netbeans version 12.1 in java. A copy of the method is below and the line of code that isn't working is between the asterisks.
private void lblHideMouseClicked(java.awt.event.MouseEvent evt) {
** txfPassword.setEchoChar((char)0); **
lblHide.setVisible(false);
lblHide.setEnabled(false);
lblShow.setVisible(true);
lblShow.setEnabled(true);
}
The error message when ran is:
error: cannot find symbol txfPassword.setEchoChar((char)0);
symbol: method setEchoChar(char)
location: variable txfPassword of type JTextField
Whole code is below:
import javax.swing.JOptionPane;
/**
*
* @author panashe
*/
public class LogInScreen extends javax.swing.JFrame {
StudentArray students = new StudentArray();
/**
* Creates new form LogIn
*/
public LogInScreen() {
initComponents();
this.getContentPane().setBackground(new java.awt.Color(221,188,149));
}
/**
* This method is called from within the constructor to initialize the form.
* WARNING: Do NOT modify this code. The content of this method is always
* regenerated by the Form Editor.
*/
@SuppressWarnings("unchecked")
// <editor-fold defaultstate="collapsed" desc="Generated Code">
private void initComponents() {
jPanel1 = new javax.swing.JPanel();
lblHeading = new javax.swing.JLabel();
jLabel1 = new javax.swing.JLabel();
jPanel3 = new javax.swing.JPanel();
btnBack = new javax.swing.JButton();
lblProfileIcon = new javax.swing.JLabel();
lblUsernameUnderline = new javax.swing.JLabel();
lblPasswordUnderline = new javax.swing.JLabel();
lblHide = new javax.swing.JLabel();
lblShow = new javax.swing.JLabel();
txfUsername = new javax.swing.JTextField();
txfPassword = new javax.swing.JTextField();
lblFirstname = new javax.swing.JLabel();
lblSurname = new javax.swing.JLabel();
btnNext = new javax.swing.JButton();
setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
setMinimumSize(new java.awt.Dimension(800, 600));
setUndecorated(true);
setPreferredSize(new java.awt.Dimension(850, 540));
setSize(new java.awt.Dimension(850, 540));
getContentPane().setLayout(new org.netbeans.lib.awtextra.AbsoluteLayout());
jPanel1.setBackground(new java.awt.Color(98, 109, 113));
jPanel1.setLayout(null);
lblHeading.setFont(new java.awt.Font("Perpetua", 1, 100)); // NOI18N
lblHeading.setForeground(new java.awt.Color(221, 188, 149));
lblHeading.setText("Log In");
jPanel1.add(lblHeading);
lblHeading.setBounds(70, 200, 320, 110);
jLabel1.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);
jLabel1.setIcon(new javax.swing.ImageIcon("C:\\Users\\*****\\*******\\icons8_globe_70px_1.png")); // NOI18N
jPanel1.add(jLabel1);
jLabel1.setBounds(30, 410, 110, 100);
getContentPane().add(jPanel1, new org.netbeans.lib.awtextra.AbsoluteConstraints(0, 0, 430, 630));
jPanel3.setBackground(new java.awt.Color(221, 188, 149));
jPanel3.setLayout(null);
btnBack.setBackground(new java.awt.Color(221, 188, 149));
btnBack.setFont(new java.awt.Font("Tahoma", 1, 18)); // NOI18N
btnBack.setText("BACK");
btnBack.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
btnBackActionPerformed(evt);
}
});
jPanel3.add(btnBack);
btnBack.setBounds(70, 450, 110, 50);
lblProfileIcon.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);
lblProfileIcon.setIcon(new javax.swing.ImageIcon("C:\\Users\\*****\\*******\\icons8_contacts_50px.png")); // NOI18N
jPanel3.add(lblProfileIcon);
lblProfileIcon.setBounds(350, 170, 60, 50);
lblProfileIcon.getAccessibleContext().setAccessibleParent(lblHeading);
lblUsernameUnderline.setFont(new java.awt.Font("Tahoma", 0, 18)); // NOI18N
lblUsernameUnderline.setText("______________________________");
jPanel3.add(lblUsernameUnderline);
lblUsernameUnderline.setBounds(40, 190, 310, 40);
lblPasswordUnderline.setFont(new java.awt.Font("Tahoma", 0, 18)); // NOI18N
lblPasswordUnderline.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);
lblPasswordUnderline.setText("______________________________");
jPanel3.add(lblPasswordUnderline);
lblPasswordUnderline.setBounds(20, 300, 330, 40);
lblHide.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);
lblHide.setIcon(new javax.swing.ImageIcon("C:\\Users\\*****\\*******\\icons8_invisible_50px_1.png")); // NOI18N
lblHide.addMouseListener(new java.awt.event.MouseAdapter() {
public void mouseClicked(java.awt.event.MouseEvent evt) {
lblHideMouseClicked(evt);
}
});
jPanel3.add(lblHide);
lblHide.setBounds(350, 290, 50, 40);
lblShow.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);
lblShow.setIcon(new javax.swing.ImageIcon("C:\\Users\\*****\\*******\\icons8_eye_50px.png")); // NOI18N
lblShow.addMouseListener(new java.awt.event.MouseAdapter() {
public void mouseClicked(java.awt.event.MouseEvent evt) {
lblShowMouseClicked(evt);
}
});
jPanel3.add(lblShow);
lblShow.setBounds(350, 290, 50, 40);
txfUsername.setBackground(new java.awt.Color(221, 188, 149));
txfUsername.setFont(new java.awt.Font("Tahoma", 0, 18)); // NOI18N
txfUsername.setText("Technology");
txfUsername.setToolTipText("Enter username");
txfUsername.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
txfUsernameActionPerformed(evt);
}
});
jPanel3.add(txfUsername);
txfUsername.setBounds(40, 180, 290, 42);
txfPassword.setBackground(new java.awt.Color(221, 188, 149));
txfPassword.setFont(new java.awt.Font("Tahoma", 0, 18)); // NOI18N
txfPassword.setText("Panashe");
txfPassword.setToolTipText("Enter password");
txfPassword.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
txfPasswordActionPerformed(evt);
}
});
jPanel3.add(txfPassword);
txfPassword.setBounds(40, 290, 290, 38);
lblFirstname.setFont(new java.awt.Font("Tahoma", 0, 18)); // NOI18N
lblFirstname.setText("Enter username:");
jPanel3.add(lblFirstname);
lblFirstname.setBounds(40, 130, 150, 52);
lblSurname.setFont(new java.awt.Font("Tahoma", 0, 18)); // NOI18N
lblSurname.setText("Enter Password:");
jPanel3.add(lblSurname);
lblSurname.setBounds(40, 250, 140, 22);
btnNext.setBackground(new java.awt.Color(221, 188, 149));
btnNext.setFont(new java.awt.Font("Tahoma", 1, 18)); // NOI18N
btnNext.setText("NEXT");
btnNext.setMinimumSize(new java.awt.Dimension(800, 600));
btnNext.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
btnNextActionPerformed(evt);
}
});
jPanel3.add(btnNext);
btnNext.setBounds(270, 450, 110, 50);
getContentPane().add(jPanel3, new org.netbeans.lib.awtextra.AbsoluteConstraints(410, 0, 450, 610));
pack();
setLocationRelativeTo(null);
}// </editor-fold>
private void txfUsernameActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
}
private void txfPasswordActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
}
private void btnNextActionPerformed(java.awt.event.ActionEvent evt) {
if (students.existingProfile(txfUsername.getText(), txfPassword.getText()) == true) {
JOptionPane.showMessageDialog(null, "Successful login");
HomeScreen newScreen = new HomeScreen();
newScreen.setVisible(true);
this.setVisible(false);
}
else{
JOptionPane.showMessageDialog(null, "The username and password has not been found");
}
}
private void btnBackActionPerformed(java.awt.event.ActionEvent evt) {
// Create an object of the next GUI frame, make it visible and hide this
MainMenuScreen newScreen = new MainMenuScreen();
newScreen.setVisible(true);
this.setVisible(false);
}
private void lblHideMouseClicked(java.awt.event.MouseEvent evt) {
//txfPassword.setEchoChar((char)0);
lblHide.setVisible(false);
lblHide.setEnabled(false);
lblShow.setVisible(true);
lblShow.setEnabled(true);
}
private void lblShowMouseClicked(java.awt.event.MouseEvent evt) {
//logtxfPassword.setEchoChar((char)8226);
lblHide.setVisible(true);
lblHide.setEnabled(true);
lblShow.setVisible(false);
lblShow.setEnabled(false);
}
/**
* @param args the command line arguments
*/
public static void main(String args[]) {
/* Set the Nimbus look and feel */
//<editor-fold defaultstate="collapsed" desc=" Look and feel setting code (optional) ">
/* If Nimbus (introduced in Java SE 6) is not available, stay with the default look and feel.
* For details see http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html
*/
try {
for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) {
if ("Nimbus".equals(info.getName())) {
javax.swing.UIManager.setLookAndFeel(info.getClassName());
break;
}
}
} catch (ClassNotFoundException ex) {
java.util.logging.Logger.getLogger(LogInScreen.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
} catch (InstantiationException ex) {
java.util.logging.Logger.getLogger(LogInScreen.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
} catch (IllegalAccessException ex) {
java.util.logging.Logger.getLogger(LogInScreen.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
} catch (javax.swing.UnsupportedLookAndFeelException ex) {
java.util.logging.Logger.getLogger(LogInScreen.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
}
//</editor-fold>
//</editor-fold>
/* Create and display the form */
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new LogInScreen().setVisible(true);
}
});
}
private javax.swing.JButton btnBack;
private javax.swing.JButton btnNext;
private javax.swing.JLabel jLabel1;
private javax.swing.JPanel jPanel1;
private javax.swing.JPanel jPanel3;
private javax.swing.JLabel lblFirstname;
private javax.swing.JLabel lblHeading;
private javax.swing.JLabel lblHide;
private javax.swing.JLabel lblPasswordUnderline;
private javax.swing.JLabel lblProfileIcon;
private javax.swing.JLabel lblShow;
private javax.swing.JLabel lblSurname;
private javax.swing.JLabel lblUsernameUnderline;
private javax.swing.JTextField txfPassword;
private javax.swing.JTextField txfUsername;
// End of variables declaration
}
Upvotes: 0
Views: 515
Reputation: 11
Use JPasswordField rather than JTextField which has that method.
jPassword = new javax.swing.JPasswordField();
private void lblHideMouseClicked(java.awt.event.MouseEvent evt) {
jPassword.setEchoChar((char) 0);
lblHide.setVisible(false);
lblHide.setEnabled(false);
lblShow.setVisible(true);
lblShow.setEnabled(true);
}
So now a password field is instantiated instead of a text field.
Upvotes: 0