Literatur

JPasswordField

Eine Spezialform des Textfeldes ist das JPasswordField. Dieses Steuerelement wird gemeinhin für die Eingabe von Passwörtern verwendet. Das JPasswordField hat die Funktion, das eingegebene Passwort unkenntlich zu machen, indem die eingetragenen Zeichen ersetzt werden. In Java wird standardmäßig jedes Zeichen durch einen Punkt repräsentiert. Es kann aber auch ein beliebiges anderes Zeichen verwendet werden.

Neben dem Standardkonstruktor besitzt die Klasse JPasswordField vier weitere Konstruktoren, die wir in folgender Tabelle kurz näher erläutern wollen:

Konstruktor Kurzbeschreibung
JPasswordField(Document doc, String txt, int columns) Hier wird ein JPasswordField erstellt, für welches der Dokumententyp, der Text und die Spaltenanzahl vorgegeben wird. 
JPasswordField(int columns) Dieser Konstruktor erstellt ein JPasswordField mit der angebenen Anzahl an Spalten.
JPasswordField(String text) Hier wird ein JPasswordField erzeugt und mit dem angebenen Text initialisiert.
JPasswordField(String text, int columns) Mit diesem Konstruktor wird für das JPasswordField direkt der Text und die Spaltenanzahl gesetzt.

 

Nachfolgend ein kleines Beispiel für ein Passwortfeld:

 
import javax.swing.*;
 
public class JPasswordFieldBeispiel {
	public static void main(String[] args) {
		JFrame meinJFrame = new JFrame();
		meinJFrame.setSize(300, 100);
		meinJFrame.setTitle("JPasswordField Beispiel");
 
		JPanel meinPanel = new JPanel();
		JLabel pwLabel = new JLabel("Passwort");
 
		//Passwortfeld wird erzeugt 
		JPasswordField pwField = new 
                        JPasswordField("meinsupersicherespasswort");
 
		meinPanel.add(pwLabel);
		meinPanel.add(pwField);
 
		meinJFrame.add(meinPanel);
		meinJFrame.setVisible(true);
	}
}
 
 
 

JPasswordField Beispiel

 

Wie Sie sehen, wird jedes Zeichen des im Konstruktor gesetzten Textes durch einen Punkt ersetzt. Ein anderes Zeichen kann über die Methode setEchoChar (char c) gesetzt werden.

Wenn man im obigen Code die Anweisung

pwField.setEchoChar('*');

einfügt, würden statt der Punkte im Passwortfeld Sternchen erscheinen. Mit getEchoChar kann das Ersetzungszeichen ausgelesen werden.

Um den unverschlüsselten Text auszulesen, bedient man sich der Methode getPassword(), welche die Zeichenkette als char-Array zurückgibt.

Der Text kann nicht aus dem Passwortfeld kopiert oder ausgeschnitten werden. Wenn man es versucht, dann ertönt ein Ton, der signalisiert, dass die Handlung ungültig ist. Dafür zuständig sind die Methoden copy() und cut(), die ein provideErrorFeedback im jeweiligen Look and Feel auslösen.