有没有办法阻止用户将数据“粘贴”到TextField?
我为它设置了一个ChangeListener
,但我找不到如何区分keyboardInput和paste动作的方法。有一点是:
myChangeListener = (ObservableValue<? extends String> observable, String oldValue, String newValue) -> {
if(Math.abs(newValue.length() - oldValue.length()!=1){
//definitely paste - entered more than one symbol
}
};
但是用户也可以一次粘贴一个字符。这是我无法捕捉到的情景。请提前帮助,谢谢。
答案 0 :(得分:4)
这似乎是一件奇怪的事情,因为这是预期的行为。但是你可以覆盖paste()
方法,这样它就是一个无操作:
TextField myTextField = new TextField() {
@Override
public void paste() { }
};