我正在使用JavaFX
2.2项目,使用TextField控件时遇到问题。我想限制用户将输入到每个TextField的字符,但是我找不到属性或类似maxlength的东西。存在同样的问题,可以通过这种方式解决。如何解决JavaFX 2.2的问题?
这是在通用文本字段上完成工作的更好方法:
public static void addTextLimiter(final TextField tf, final int maxLength) {
tf.textProperty().addListener(new ChangeListener<String>() {
@Override
public void changed(final ObservableValue<? extends String> ov, final String oldValue, final String newValue) {
if (tf.getText().length() > maxLength) {
String s = tf.getText().substring(0, maxLength);
tf.setText(s);
}
}
});
}
除了该“撤消”错误外,它的工作原理非常完美。