Frage

Nach viel Frust mit einem JFormattedTextField zur Arbeit mit meinen benutzerdefinierten Formaten bekommen, ich habe mich gefragt, ob es eine Formatter oder FormatterFactory war, dass Verwendungen reguläre Ausdrücke?

Meine Idee ist, dass, wenn es einen gibt, dann könnte ich es in einer statischen Klasse wickeln und rufen Sie es wie folgt:

mFormattedTextField.setFormatterFactory(
    SomeStaticClass.getRegexFormatFactory("^(\\d{1,}h)(\\s([0-5])?[0-9]m)?$"));

Sehen Sie meine vorherige Frage für mehr Hintergrund:
" Ich möchte ein JFormattedTextField verwenden, um den Benutzer zur Eingabe von Zeitdauerwerte in eine Form zu ermöglichen Muster gültige Werte sind:. 2h 30m 72h 15m 6h 0h "

War es hilfreich?

Lösung

Haben Sie diesem Artikel lesen? Für den Fall, dass Link verrottet weg, sagt es alles, was Sie wirklich überschreiben AbstractFormatter der stringToValue Methode müssen tun, wie folgt aus:

public Object stringToValue(String text) throws ParseException {
    Pattern pattern = getPattern();

    if (pattern != null) {
        Matcher matcher = pattern.matcher(text);

        if (matcher.matches()) {
            return super.stringToValue(text);
        }
        throw new ParseException("Pattern did not match", 0);
    }
    return text;
}

Eigentlich eine schnelle Suche liefert mehr voll umgesetzt, freie Lösungen; war keiner von denen, die ausreichen, um Ihre Bedürfnisse?

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top