I would like to know whether it is possible to make text area in JavaFX to accept only text format, no numbers - in the worst case at least to say to user when typing numbers inside this text area that it's forbidden.
Asked
Active
Viewed 246 times
0
-
1You should work on the question yourself and add some code. Please verify here: https://stackoverflow.com/help/how-to-ask – rainer Apr 01 '18 at 14:23
-
1[This](https://stackoverflow.com/questions/49571994/hello-i-want-to-create-a-javafx-textfield-where-the-user-can-only-input-in-the/49575480#49575480) is for `TextField`. I am guessing `TextArea` is a similar approach. – SedJ601 Apr 01 '18 at 14:25
2 Answers
-1
Solution: is quite simple, just check the text inside text area with this method :
if (!Pattern.matches("[a-zA-Z]+", userInputText.getText())){
System.out.println("wrong input");
}
I have personally added this onHandleKeyReleased action event:
@FXML
public void handleKeyReleased() {
String text = userInputText.getText();
boolean disableButtons = text.isEmpty() || text.trim().isEmpty() || (!Pattern.matches("[a-zA-Z]+", userInputText.getText())) ;
okButton.setDisable(disableButtons);
}
So after user writes any number inside the text field, the button for confirming his action will be disabled, so it will look like this:
This should work with input UI element within JavaFx.

John Castor
- 1
- 1
-
no ... problems: a) doesn't catch incorrect input in c&p b) that pattern isn't working in other Locales (rejects more chars than allowed) To fix the former use a TextFormatter, to fix the latter use a Format – kleopatra Apr 02 '18 at 09:37
-2
for number : What is the recommended way to make a numeric TextField in JavaFX?
try invert it (near match !)
textField.textProperty().addListener(new ChangeListener<String>() {
@Override
public void changed(ObservableValue<? extends String> observable, String oldValue,
String newValue) {
if (!newValue.matches("\\d*")) {
textField.setText(newValue.replaceAll("[^\\d]", ""));
}
}
});

guillaume girod-vitouchkina
- 3,061
- 1
- 10
- 26