2017-01-12 5 views
0

Есть ли способ предотвратить использование пользователем «вставки» данных в TextField? Я установил для него ChangeListener, но я не могу узнать, как различать действия клавиатуры и вставки. Одна определенная вещь:Как ограничить действие «вставкой» к определенному TextField в JavaFX?

myChangeListener = (ObservableValue<? extends String> observable, String oldValue, String newValue) -> { 
    if(Math.abs(newValue.length() - oldValue.length()!=1){ 
     //definitely paste - entered more than one symbol 
    } 
}; 

Но пользователь может также вставить один символ за один раз. Это сценарий, который я не могу поймать. Пожалуйста, помогите, спасибо заранее.

ответ

4

Это кажется странным, что хочется делать, как и следовало ожидать. Но вы можете просто переопределить метод paste(), чтобы он не работал:

TextField myTextField = new TextField() { 
    @Override 
    public void paste() { } 
}; 
+0

Спасибо !!!! Именно то, что я искал! –

Смежные вопросы