Hallo,
ich würde gerne in JavaFX bei einem TextField nur bestimmte Werte (z.B nur Float) zulassen.
Dazu habe ich mir eine Klasse erstellt:
Wenn direkt in das TextField geschrieben wird dann funktioniert die Formatierung auf Float sehr gut.
Aber wenn ein Text in das TextField kopiert wird dann funktioniert die Formatierung nicht mehr da ja die Methode replaceSelection aufgerufen wird und in dieser gibt es keinen Start und Endwert so dass ich nicht ermitteln kann ob zb ein Punkt schon vorhanden ist oder nicht.
Wie könnte ich dies umsetzen?
Gibt es eigentlich in JavaFX auch so Document-Vorlagen wie in Swing damit gewisse Eingaberegeln (wie bei einem Datum 01.01.12) eingehalten werden müssen oder nicht?
godi
ich würde gerne in JavaFX bei einem TextField nur bestimmte Werte (z.B nur Float) zulassen.
Dazu habe ich mir eine Klasse erstellt:
Code:
import javafx.scene.control.TextField;
public class TextFieldFloat extends TextField {
public TextFieldFloat() {
super();
}
public TextFieldFloat(String arg0) {
super(arg0);
}
@Override
public void replaceText(int start, int end, String text) {
if (!text.matches("[^0-9]")) {
super.replaceText(start, end, text);
}
else if ((text.charAt(0) == '-') && (start == 0)) {
super.replaceText(start, end, text);
}
else if ((text.charAt(0) == '.') && (getText().indexOf('.') == -1)) {
super.replaceText(start, end, text);
}
}
@Override
public void replaceSelection(String text) {
if (text.matches("[0-9]")) {
super.replaceSelection(text);
}
}
}
Wenn direkt in das TextField geschrieben wird dann funktioniert die Formatierung auf Float sehr gut.
Aber wenn ein Text in das TextField kopiert wird dann funktioniert die Formatierung nicht mehr da ja die Methode replaceSelection aufgerufen wird und in dieser gibt es keinen Start und Endwert so dass ich nicht ermitteln kann ob zb ein Punkt schon vorhanden ist oder nicht.
Wie könnte ich dies umsetzen?
Gibt es eigentlich in JavaFX auch so Document-Vorlagen wie in Swing damit gewisse Eingaberegeln (wie bei einem Datum 01.01.12) eingehalten werden müssen oder nicht?
godi