Search code examples
javaswingjpasswordfield

Displaying the password in a JPasswordField rather than setting 0 as an echo char


How do I display the text of a JPasswordField rather than set 0 as an echo char?

Java Docs says:

Setting a value of 0 indicates that you wish to see the text as it is typed, similar to the behavior of a standard JTextField.

The following results in an Incompatible types error

outField.setEchoChar(0);

wheras

outField.setEchoChar('0');

simply sets 0 as the echo char (displays 0s for every digit).

The reason for using JPasswordField over JTextField is that I want to change the echo char and hide the password with another method.

Thanks!


Solution

  • Do this:

    outField.setEchoChar((char)0);
    

    If you do this:

    outField.setEchoChar(0);
    

    then 0 is an integer, not a char, and the method requires a char.

    If you do this:

    outField.setEchoChar('0');
    

    then '0' is equivalent to (char)48.