Wie kann ich eine Eingabe in Java "nicht lesbar" machen durch Sternchen anstatt dem Zeichen, ähnlich wie bei Passwörtereingaben?

2 Antworten

Sofern du Swing benutzt, verwende statt JTextField einfach JPasswordField.

Bei JavaFX solltest du anstatt TextField einfach PasswordField nutzen.

Diese bieten bereits die Funktionalität die du suchst.

marco74774 
Fragesteller
 07.04.2016, 08:27

hm das macht mir dann Probleme mit "ShowopenDialog"...er sagt das JPasswordField dafür nicht definiert ist:(

0
KnusperPudding  07.04.2016, 09:09
@marco74774

Verstehe, aber auch dafür gibt es eine Lösung:

JPanel panel = new JPanel();
JLabel label = new JLabel("Enter a password:"); JPasswordField pass = new JPasswordField(10); panel.add(label); panel.add(pass); String[] options = new String[]{"OK", "Cancel"}; int option = JOptionPane.showOptionDialog(null, panel, "The title", JOptionPane.NO_OPTION, JOptionPane.PLAIN_MESSAGE, null, options, options[1]); if (option == 0) // pressing OK button { char[] password = pass.getPassword(); System.out.println("Your password is: " + new String(password)); }

Wurde so auf Stackoverflow gelöst:

http://stackoverflow.com/questions/8881213/joptionpane-to-get-password

0

Was hältst du von:

TextField password = new TextField(20);
password.setEchoCharacter('*');

?

marco74774 
Fragesteller
 07.04.2016, 08:21

ich hab die eingabe als String, String ist nicht zulässig:/

0
marco74774 
Fragesteller
 07.04.2016, 08:29
@Healzlolrofl

String vKennung = JOptionPane.showInputDialog("Bitte Benutzernamen eingeben:");

String pw = JOptionPane.showInputDialog(null, "Bitte Passwort eingeben:");

int lengLog = vKennung.length();

int lengPw = pw.length();

Das Passwort soll verschlüsselt sein

0