derzeit an einem Textfeld zu arbeiten, wo, wenn Sie Eingabe Ihrer Nummer sie es aktualisiert mag:JavaFX: Aktualisieren einer Telefonnummer Textfeld mit Hashtags und Zahlen leben
1 ## - ### - ####
12 # - ### - ####
Leider funktioniert es über die Konsole zu arbeiten, um eine Eingabe "1234" in "123-4 ## - ####" zu konvertieren, obwohl, wenn ich drücke aktualisierte Zeichenkette "123-4 ## - ####" ersetzt automatisch die Cursor-Sektion bis zum Anfang, wo sie ständig die erste Ziffer ersetzen würde. Kann jemand helfen, die Cursorposition beim Aktualisieren der Zeichenfolge in der Textbox zu speichern? Hier ist mein Update-Code.
phoneField.textProperty().addListener((observable, oldValue, newValue) -> {
Pattern p = Pattern.compile("-?\\d+");
Matcher m = p.matcher(newValue);
String result = "";
String finalString = "";
try {
while (m.find()) {
result = m.group();
}
int size = result.length();
for(int i = 0; i < size; i++) {
if(i == 3 || i == 6) finalString += "-";
finalString += result.charAt(i);
}
for(int i = size; i < 10; i++) {
if(i == 3 || i == 6) finalString += "-";
finalString += "#";
}
} catch (Exception e) {
finalString = "INVALID NUMBER";
}
phoneField.setText(finalString);
});
Vielleicht 'TelefonFeld. positionCaret (newValue.length()) '? –
Leider setzt das meine Caret immer auf das Ende des Textes – Nom
@Nom hey, hast du meine Lösung ausprobiert? – Enigo