将文本复制到剪贴板,右键单击文本字段并按“粘贴”,是否有一种方法可以在粘贴时点击?或者更确切地说,在以这种方式粘贴某些内容后,该字段中的输入文本已更改因为这些在这种特殊情况下不起作用:
setOnKeyReleased()
setOnInputMethodTextChanged()
答案 0 :(得分:3)
“粘贴”功能在public void paste()
TextInputControl
的{{1}}超类中实现。因此,虽然它不是真正的事件驱动或MVC方法,但您可以通过覆盖此方法来响应“粘贴”操作(无论是通过鼠标或键盘快捷键调用,通常是ctrl-V):
TextField
答案 1 :(得分:0)
你可以只听文本属性的变化。 带有搜索文本字段的示例:
tf_search.textProperty().addListener((observableValue, oldValue, newValue) -> {
onSearch();
});
另一种方法是使用剪贴板覆盖适当的方法。
TextField tf = new TextField() {
@Override
public void paste() {
Clipboard clipboard = Clipboard.getSystemClipboard();
if (clipboard.hasString()) {
replaceSelection(clipboard.getString());
}
}
};