3

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!

mKorbel
  • 109,525
  • 20
  • 134
  • 319
Matt B
  • 1,813
  • 2
  • 17
  • 20

5 Answers5

6

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.

Steve McLeod
  • 51,737
  • 47
  • 128
  • 184
2

When you do this:

outField.setEchoChar(0);

you're trying to pass an int into the method, and this isn't allowed since it expects a char type. Instead try

outField.setEchoChar((char)0);
Hovercraft Full Of Eels
  • 283,665
  • 25
  • 256
  • 373
2

Use the char with value 0, not the number 0, or the char '0':

    outField.setEchoChar((char)0);
Alex Coleman
  • 7,216
  • 1
  • 22
  • 31
1

Try it out like this......

outField.setEchoChar((char)0);
Kumar Vivek Mitra
  • 33,294
  • 6
  • 48
  • 75
1

try outField.setEchoChar('\0');