У нас есть ошибка, когда мы пытаемся получить первые несколько символов строки
Сначала мы попытались удалить два последних оскорбительных символа
Это привело к той же ошибке, которую мы наблюдаем, когда пытаемся получитьпервые несколько символов
Метод On Key Typed присоединяется к текстовому полю, когда MAX-символ превышен, запускается пользовательское предупреждение
. Мы рассмотрели много способов удалить или получить подстроки в различных SO-вопросах, прежде чем публиковать
Введенная строка никогда не будет прежней, поэтому мы не знаем, какой символ заменить
Здесьэто код и снимок экрана с сообщением об ОШИБКЕ, что "o" перед исходным текстом
Вводимая нами строка "Это тест, чтобы увидеть, сколько лет"
Мы пытаемся получить только «Это тест, чтобы увидеть, сколько»
Именно System.out.println (strNew), но когда strNew добавляется в текстовое поле, появляется «o»
Наш вопрос состоит в том, как предотвратить это?
ИЛИ В чем причина нечетного текста, который находится в текстовом поле?
Вотминимальный код для проверки
public class Atest extends Application {
@Override
public void start(Stage stage) throws Exception {
Parent root = FXMLLoader.load(getClass().getResource("test.fxml"));
Scene scene = new Scene(root);
stage.setScene(scene);
stage.show();
}
public static void main(String[] args) {
launch(args);
}
Контроллер
public class testController implements Initializable {
@FXML
TextField txtDesc;
@FXML
private void handleButtonAction(ActionEvent event) {
txtDesc.setText("Thanks");
}
@FXML
private void descLEN(){
txtDesc.setOnKeyTyped(event ->{
int maxCharacters = 10;
if(txtDesc.getText().length() > maxCharacters)
event.consume();
});
}
@Override
public void initialize(URL url, ResourceBundle rb) {
}
Мы не знаем, как разместить код FXML, все, что вам нужно, это TextField
сидентификатор txtDesc и установите OnKeyTyped в descLEN