singhKirat
singhKirat

Reputation: 5

How can i change JPasswordField into String

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]);

Upvotes: 0

Views: 551

Answers (3)

camelCase
camelCase

Reputation: 43

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.

Upvotes: 1

Julien
Julien

Reputation: 2246

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

Upvotes: 0

ag00se
ag00se

Reputation: 116

String passText = new String(pass.getPassword());

See Link for more information.

Upvotes: 0

Related Questions