我想要将DocumentEvent捕获到DocumentListener的insertUpdate方法中 我没有看到任何阻止作为KeyEvent(e.consume())的方法。
我不想使用密钥监听器,因为无法阻止剪贴板事件(复制粘贴)。 我如何处理这些事件? 自cose以来我如何提出文件事件?
Isbn13TextField.getDocument().addDocumentListener(new DocumentListener(){
public void insertUpdate(DocumentEvent e) {
e.consume(); //Not Exists, How consume a copy paste?
}
public void removeUpdate(DocumentEvent e) {}
public void changedUpdate(DocumentEvent e) {}
});
答案 0 :(得分:1)
取决于你想要实现的目标......
使用DocumentFilter
,您可以在输入到达基础Document
之前对其进行过滤。这由Document
本身使用,因此不依赖于如何从Document
添加/删除内容,而是Document
本身。
特别关注Text Component Features和Implementing a Document Filter以及here示例
使该字段不可编辑...
Isbn13TextField.setEditable(false)
答案 1 :(得分:1)
如何使用复制粘贴?
你做不到。在文档已经更新之后生成DocumentEvent。
如果您只想禁用文本字段的复制/粘贴功能,则可以删除密钥绑定:
KeyStroke copy = KeyStroke.getKeyStroke("control C");
textField.getInputMap().put(copy, "none");