假设我在JPanel中有一个JEditorPane。每次用户在JEditorPane组件中输入/粘贴文本时,我都希望能够执行回调。我应该创建什么类型的监听器?我应该为什么JEditorPane事件创建侦听器?
3
A
回答
3
一种方法是创建一个自定义文件和覆盖insertString方法。例如:
class CustomDocument extends PlainDocument {
@Override
public void insertString(int offset, String string, AttributeSet attributeSet)
throws BadLocationException {
// Do something here
super.insertString(offset, string, attributeSet);
}
}
这可以让你找出插入和否决它,如果你希望(不是通过调用super.insertString)。您可以使用此文档应用此文档:
editorPane.setDocument(new CustomDocument());
4
您可以使用DocumentListener通知文档的任何更改。
因为我还没有留下评论,所以我只想说尽可能地使用监听器比重写类更好,就像上面给出的例子重写PlainDocument一样。
侦听器方法将在JTextField,JTextArea,JEditorPane或JTextPane上工作。默认情况下,编辑器窗格使用HTMLDocument,而JTextPane使用StyledDocument。所以,你迫使组件使用一个PlainDocument来丢失功能。
如果您关注的是有关编辑文本之前它被添加到该文件,那么你应该使用DocumentFilter
2
在DocumentEvent界面,你有一个像的getOffset()方法和的getLength()您可以使用它来检索实际更改。
希望这有助于你这样做的
相关问题
- 1. 为什么我的事件侦听器不止一次发射?
- 2. 为什么symfony2不会调用我的事件侦听器?
- 3. 如何为服务器端React创建事件侦听器?
- 4. javascript jquery创建和侦听事件
- 5. 为什么在函数调用中使用事件侦听器?
- 6. 创建侦听器onRotate()
- 7. 事件侦听器5
- 8. reactjs事件侦听器window.resize
- 9. ZF3 onRoute事件侦听器
- 10. 蜡染事件侦听器
- 11. 事件侦听器在evently
- 12. 应该删除HTTPService()对象的匿名事件侦听器吗?
- 13. 为什么我的添加事件侦听器无法正常工作?
- 14. 为什么我的事件侦听器不能在点击时显示模态?
- 15. 如何创建侦听Windows事件的应用程序?
- 16. 删除在函数内部创建的事件侦听器? (JavaScript)
- 17. 如何创建生存于document.write的JS事件侦听器?
- 18. 在NatTable中创建更改事件侦听器
- 19. 使用for循环创建元素和事件侦听器
- 20. 如何在node.js(express.js)中创建自定义事件侦听器?
- 21. 动态创建html的事件侦听器
- 22. 添加事件侦听器到动态创建元素
- 23. jQuery:一次创建多个事件侦听器?
- 24. 我应该解除绑定事件侦听器以防止内存泄漏?
- 25. 匿名事件侦听器有什么更好的选择?
- 26. 在由php循环创建的独特行上创建javascript事件侦听器
- 27. 浏览器和viewer.container事件侦听器
- 28. 当侦听器被移除时,是否可以再次在该侦听器上调用该事件?
- 29. 使用transitionend事件侦听器做出反应以创建转换
- 30. 我应该使用什么工具创建我的构建器?
但是,我将如何获得实际更改? – Geo 2009-07-04 15:51:57