Я создаю пользовательскую TextArea, которая принимает отрицательные десятичные дроби, пока пользователь пишет.
Это то, что я нашел в Интернете для десятичной TextAreas
public DecimalTextField() {
super();
UnaryOperator<Change> filter = new UnaryOperator<TextFormatter.Change>() {
@Override
public TextFormatter.Change apply(TextFormatter.Change t) {
if (t.isReplaced())
if(t.getText().matches("[^0-9]"))
t.setText(t.getControlText().substring(t.getRangeStart(), t.getRangeEnd()));
if (t.isAdded()) {
if (t.getControlText().contains(".")) {
if (t.getText().matches("[^0-9]")) {
t.setText("");
}
} else if (t.getText().matches("[^0-9.]")) {
t.setText("");
}
}
return t;
}
};
this.setTextFormatter(new TextFormatter<>(filter));
}
Теперь мне нужно принять «-» в начале, но я думаю, что это не так просто, как кажется.