JPanelにJEditorPaneがあるとします。ユーザーがJEditorPaneコンポーネントにテキストを入力/ペーストするたびにコールバックを実行できるようにしたい。どんなタイプのリスナーを作成すればいいですか?リスナーを作成するJEditorPaneイベントは何ですか?
3
A
答えて
3
を助け、これを行う1つの方法は、カスタムドキュメントを作成し、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を使用して、Documentに対する変更を通知できます。
私はまだコメントを残すことができないので、可能であれば、PlainDocumentをオーバーライドする上の例のように、クラスをオーバーライドするよりもリスナーを使用するほうがよいと言いたいと思います。
リスナーのアプローチは、JTextField、JTextArea、JEditorPaneまたはJTextPaneで機能します。デフォルトでは、エディタペインはHTMLDocumentを使用し、JTextPaneはStyledDocumentを使用します。したがって、PlainDocumentを使用するようにコンポーネントを強制して機能を失います。
あなたの懸念は、それが文書に追加される前に、あなたはDocumentEventインターフェイスでDocumentFilter
2
を使用する必要があり、テキストの編集についてです場合は、のgetOffset()などのメソッドを持ってとのgetLength()実際の変更を取得するために使用できる
希望は、これはあなたに
関連する問題
- 1. リスナーを作成するonRotate()
- 2. EGit/JGitプラグインを使用してGitイベントのリスナーを作成する方法は?
- 3. スレッド作成リスナー
- 4. 作成するインデックスは何ですか?
- 5. イベントを生成できるオブジェクトの用語は何ですか?
- 6. ユーザーコントロールでイベントを作成することはできますか?
- 7. 実行されたリスナーでjpanelを作成しますか?
- 8. redisリスナーの作成 - PHPで可能ですか?
- 9. symfony 2でform.set_dataイベントのリスナーを設定する方法は?
- 10. jQueryのURLイベント・リスナー
- 11. イベントを作成する場所はどこですか?可能?
- 12. 変数の変更リスナーを作成する方法は?
- 13. HTTP要求リスナーWindowsサービスを.NETで作成する方法
- 14. イベントでカレンダーを作成するAppcelerator Titanium
- 15. end_timeなしでイベントを作成する
- 16. ontouchイベントでonclickを作成する
- 17. Javascriptでイベントを作成する
- 18. Google閉鎖でイベントを作成する
- 19. androidでチャットアプリを作成するベストプラクティスは何ですか
- 20. onclickリスナーの内側にボタンを作成しますか?
- 21. Appcelerator Titaniumでイベントの後にイベントを作成する方法
- 22. actionscriptで何かを返す関数を作成するには
- 23. jQueryリスナーを作成してマークアップを反復する方法
- 24. 命名Laravelイベント、リスナーとジョブズ
- 25. 単一のTomcatインスタンスで2人のリスナーを作成する方法は?
- 26. TreeMapの変更をリッスンするリスナーを作成するにはどうすればよいですか?
- 27. Djangoで何かまたは何かsomething_elseクエリを作成するには?
- 28. JLabelをJEditorPaneに追加するには?
- 29. GUIを作成する適切な方法は何ですか
- 30. Pythonデーモンを作成するデファクトライブラリとは何ですか
この文書を適用することはできますが、どうすれば実際の変更を取得できますか? – Geo
各リスナーメソッドと共に渡される 'DocumentEvent'から必要な情報がすべて取得されます:ここでは、変更のタイプと、変更が開始されたドキュメントへのオフセットを見つけることができます。影響を受ける部分を教えてください。イベント処理機構は、リスナ・メソッドが実行されている間に、これらの値が依然として正しいことを保証する(すなわち、ドキュメントはさらに変更されない)ことを保証する。 – Thomas