假设我在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. Backbone:我应该听什么事件
- 2. 为什么我的事件侦听器不止一次发射?
- 3. 为什么symfony2不会调用我的事件侦听器?
- 4. 如何为服务器端React创建事件侦听器?
- 5. 事件侦听器
- 6. 任何方式来创建“状态”侦听器而不是“事件”侦听器?
- 7. 将事件侦听器传递给事件侦听器?
- 8. javascript jquery创建和侦听事件
- 9. 如何为Appcelerator Ti.Paint的版本1.4创建事件侦听器?
- 10. 我应该在听DependencyProperty更改时使用弱事件侦听器吗?
- 11. 将一个事件侦听器更改为另一个事件侦听器?
- 12. 为什么此附加事件侦听器未执行?
- 13. 为什么在函数调用中使用事件侦听器?
- 14. 创建侦听器onRotate()
- 15. 创建一个删除事件侦听器,并添加事件侦听器这个功能
- 16. 事件侦听器5
- 17. 事件侦听器在evently
- 18. 蜡染事件侦听器
- 19. ZF3 onRoute事件侦听器
- 20. reactjs事件侦听器window.resize
- 21. 应该删除HTTPService()对象的匿名事件侦听器吗?
- 22. 为什么我的事件侦听器不在laravel 5中触发?
- 23. 为什么我的事件侦听器不在函数内部工作?
- 24. 为什么我的事件侦听器不能在点击时显示模态?
- 25. 为什么我的添加事件侦听器无法正常工作?
- 26. 如何创建侦听Windows事件的应用程序?
- 27. 铬忽略NPAPI事件侦听器只有在创建动态
- 28. 清理动态创建的XUL元素的事件侦听器?
- 29. 如何使用Marionette创建全局按键事件侦听器
- 30. 添加事件侦听器到动态创建元素
但是,我将如何获得实际更改? – Geo 2009-07-04 15:51:57