Frage von marco74774, 65

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

Hey Leute,

in meinem Programm wird eine Box geöffnet, wo der User sein Passwort eingeben muss, bisher ist das Passwort beim eingeben aber sichtbar, es soll aber "unsichtbar" sein, durch Sternchen anstatt der Eingabe

Expertenantwort
von KnusperPudding, Community-Experte für Java, 39

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.

Kommentar von marco74774 ,

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

Kommentar von KnusperPudding ,

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

Kommentar von marco74774 ,

Vielen Dank, habe es grad so ähnlich schon gelöst:-)

Antwort
von Healzlolrofl, 49

Was hältst du von:

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

?

Kommentar von marco74774 ,

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

Kommentar von Healzlolrofl ,

Copy&Paste mal deinen String.

Kommentar von marco74774 ,

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

Kommentar von Healzlolrofl ,
Kommentar von marco74774 ,

Vielen Dank, habe es grad so ähnlich schon gelöst:-)

Kommentar von Healzlolrofl ,

Super! :)

Dann noch viel Spass mit deinem Script :-)

Keine passende Antwort gefunden?

Fragen Sie die Community

Weitere Fragen mit Antworten