Wie entlarve ich ein JavaFX PasswordField oder maskiere ein TextField richtig?

7

In meinem UI habe ich ein PasswordField so ( urm der eine ganz unten! ):

Ich möchte, dass ein Benutzer die Checkbox, die Sie auf dem Bild sehen, überprüfen kann und alle "geheimen" Passwort-Zeichen angezeigt bekommen. Nicht viel anders als die Option, die wir von vielen modernen passwortfordernden UIs bekommen: s herumfliegen. Ich kann jedoch in der JavaFX-API nichts finden, was mich dazu veranlasst hat?

Wenn meine Befürchtungen wahr sind, dann möchte ich ein TextField verwenden, das die letzte Taste nur für eine halbe Sekunde gedrückt hält oder bis die nächste Taste gedrückt wird und dann alle vorherigen Benutzereingaben maskiert. Dies würde einen coolen Animationseffekt erzeugen, den man manchmal in modernen UI sehen kann: s. Wie auch immer, gibt es eine Möglichkeit für mich, das Betriebssystem abhängig zu bekommen (ich denke, es ist OS abhängig ??) Passwort Echo-Zeichen, das ich verwenden sollte?

Wenn es nicht möglich ist, dieses OS-abhängige Zeichen zu erhalten, dann würde ich froh sein, das Zeichen zu verwenden, das Sie auf dem Bild sehen (JavaFX auf einem Windows 8-Rechner). Was ist der UTF-8-Codepunkt für diesen Fremden?

    
Martin Andersson 09.06.2013, 20:47
quelle

2 Antworten

23

& gt; Ich kann jedoch nichts in der JavaFX-API finden, das mich das erlaubt?

Die Komponente PasswordField zeigt standardmäßig keinen maskierten Text an. Sie können jedoch PasswordField mit TextField verwenden und maskierten / unmaskierten Text mit diesen Komponenten umschalten. Wo der nicht maskierte Text von TextField angezeigt wird, wie in der Beispieldemo unten.

& gt; Ich möchte ein TextField verwenden, das die letzte Taste nur eine halbe Sekunde lang gedrückt hält oder bis die nächste Taste gedrückt wird, und dann alle vorherigen Benutzereingaben maskieren soll.

Seit PasswordField , selbst ist eine erweiterte Version von TextField . Sie können immer ein eigenes benutzerdefiniertes Textfeld mit den von Ihnen erwähnten Eigenschaften erstellen.

& gt; gibt es eine Möglichkeit für mich, das Betriebssystem abhängig zu bekommen (ich denke es hängt vom Betriebssystem ab?) Passwort echo character das ich verwenden sollte?

Offen gesagt, habe ich nicht geschnappt, was Sie hier sagen. Sie können Textänderungen verfolgen, indem Sie den Änderungslistener zu PasswordField.textPrperty() hinzufügen und Animationen, Timer usw. ausführen. Sie können die Standard-Aufzählungsliste überschreiben, indem Sie PasswordFieldSkin erweitern und sie über CSS -fx-skin verwenden. Siehe die Definition von bullet in seiner Quelle hier :

%Vor%

Endlich, hier ist eine Demo-App, die Passwortzeichen mit Bindings anzeigt:

%Vor%     
Uluk Biy 09.06.2013, 21:50
quelle
1

Erzeugt drei Elemente an derselben Position, ein TextField, ein PasswordField und ein CheckBox, um die Sichtbarkeit zu steuern, zu der wir das Ereignis onAction hinzufügen:

%Vor%

Hinweis: Ersetzt den Wert von X und Y .

Fügen Sie Ihren Controller hinzu:

%Vor%

Wenn Sie den Wert des Passworts wissen möchten, können Sie eine Methode erstellen, die es zurückgibt:

%Vor%     
fitorec 21.07.2017 22:04
quelle