XdevPasswordField

Das XdevPasswordField ist ein einzeiliges Eingabefeld, das alle Zeichen automatisch durch Punkte ersetzt und damit ausschließlich verdeckte Eingaben zulässt. Das XdevPasswordField bietet jedoch keinen Schutz bei der Datenübertragung. Wird die Datenübertragung nicht via HTTPS verschlüsselt, werden die Eingaben in Plain-Text übertragen und können damit sehr leicht ausgelesen werden. Das XdevPasswordField ist eine Formular-Komponente und kann via XdevFieldGroup persistiert werden.

Wichtige Properies:
  • TextChangeEventMode - Legt fest, wann genau das Event textChange ausgelöst wird.  

    • LAZY - Standard-Einstellung. Das Event wird erst ausgelöst, wenn nach der letzten Änderung eine Pause erfolgt. Die Länge der Pause kann bei Properties > Misc > TextChangeTimeout definiert werden.

    • EAGER - Das Event wird bei jedem einzelnen Tastendruck ausgelöst.
    • TIMEOUT - Das Event wird erst ausgelöst, wenn nach der letzten Änderung eine Pause erfolgt.
  • TextChangeTimeout - Definiert die Länge der Pause in Millisekunden nach der das Event textChange ausgelöst wird.

Wichtige Events:
  • textChange - Wird nach einer kurzen Verzögerung ausgelöst, nachdem der Inhalt verändert wurde, u.a. durch Hinzufügen oder Löschen von Zeichen. Bei Properties > Misc > TextChangeEventMode kann der Zeitpunkt wann das Event ausgelöst wird, noch genauer definiert werden.

  • Misc 

    • valueChange - Wird ausgelöst, wenn der Inhalt verändert wurde, u.a. durch Hinzufügen oder Löschen von Zeichen, jedoch erst wenn die UI-Komponente den Fokus verliert.

Examples:
  • Inhalt zuweisen - Weist dem XdevPasswordField einen Text als String zu. Dies kann ggf. ein textChange oder valueChange Event auslösen. 
    Einfachste Art der Zuweisung, meist nur mit Strings 100% funktional. Diverse Converter liefern mit dieser Methode ein unbefriedigendes Ergebnis

    passwordField.setValue("Hello 123 !!!");
  • Inhalt zuweisen - Weist dem XdevPasswordField einen speziellen Wert zu. Als Beispiel ein BigDecimal Datentyp für Währungen oder Double für spezielle Formatierungen mit Nachkommastellen etc.
    Bei dieser Art der Zuweisung funktionieren die gelieferten Converter optimal.

    Property<BigDecimal> betrag = new ObjectProperty<BigDecimal>(new BigDecimal(100), BigDecimal.class);
    passwordField.setPropertyDataSource(betrag);

    oder

    Property<Double> betrag = new ObjectProperty<Double>(new Double(100), Double.class);
    passwordField.setPropertyDataSource(betrag);
  • Inhalt ändern - Wurde dem XdevPasswordField bereits eine Property zugewiesen (siehe Beispiel 2.) so kann mit dieser Kurzschreibweise der Wert in der Property direkt geändert werden ohne eine neue Datasource zu setzen.

    passwordField.setConvertedValue(200);
  • Inhalt auslesen 

    String content = passwordField.getValue();
  • Inhalt löschen - Löscht den gesamten Inhalt im XdevPasswordField. Dies kann ggf. ein textChange oder valueChange Event auslösen.

    passwordField.clear();
  • Cursor setzen - Setzt den Cursor an eine bestimmte Position. Die Position wird als int Wert angegeben. 

    passwordField.setCursorPosition(10);
  • Fokus setzen - Weist dem XdevPasswordField den Focus zu. Dies kann ggf. ein focus Event auslösen.

    passwordField.focus();
  • Inhalt selektieren

    passwordField.selectAll();
Zur XdevPassowordField Javadoc
Tipps:
  • String in Integer umwandeln - Wenn es sich beim Inhalt des XdevPasswordFields um eine Ganzzahl handelt mit der Sie weiter rechnen möchten, müssen Sie den String mit der Methode Integer.parseInt(String s) in einen Integer konvertieren. Die Methode nimmt einen String entgegen, der nur Ziffern enthält. Lediglich die Zeichen + und - am Anfang des Wertes sind erlaubt.  

    String content = passwordField.getValue();
    Integer value = Integer.parseInt(content);
  • Integer in String umwandeln - Wenn Sie einem XdevPasswordField eine Ganzzahl zuweisen möchten, müssen Sie diese zuvor in einen String konvertieren, z.B. mit der Methode Integer.toString(Integer i).

    Integer value = 100;
    String content = Integer.toString(value);
     
    passwordField.setValue(content);

XDEV Software Corp. - One Embarcadero Center, San Francisco, CA 94111, US
Copyright © 2015. XDEV Software Corp. All rights reserved.