How can i change JPasswordField into String

314 Views Asked by At

I want to connect my IDE to Oracle SQL Developer. Therefore I have to use this line of code:

Connection connection = DriverManager.getConnection(dbURL, username, password);

To enter the password I am using this:

JPasswordField pass = new JPasswordField(10);

I would like to know how I can convert this JPasswordField into a String, so I can use the "Connect" line of Code I(This line only works with Strings)

EDIT: This is the code for entering the password. I found it here on stackoverflow:

JPanel panel = new JPanel();
      JLabel label = new JLabel("Enter password:");
      JPasswordField pass = new JPasswordField(10);
      panel.add(label);
      panel.add(pass);
      String[] options = new String[]{"OK", "Cancel"};
      int option = JOptionPane.showOptionDialog(null, panel, "      Password for Database Connection",
                               JOptionPane.NO_OPTION, JOptionPane.PLAIN_MESSAGE,
                               null, options, options[0]);
3

There are 3 best solutions below

0
ag00se On BEST ANSWER
String passText = new String(pass.getPassword());

See Link for more information.

0
Julien On

I guess you will have some kind of submit button somewhere which will call the method doing the connection.

You will be able to retrieve the content of the JPasswordFieldby calling the getPassword method which provide a char[].

Converting from char[] can be done by calling String.valueOf

0
camelCase On

You just simply cast the the pass.getPassword() into string like this:

String stringPass = new String(pass.getPassWord());

but that defeats the security purpose of JPasswordField. Make sure to overwrite the pass.getPassWord() which is of type char[] since String stays in the JVM (Java Virtual Machine) until it's garbage-collected.