ある種の色付けをサポートする JTextPane を作成しようとしています。ユーザーがテキストを入力しているとき、特定のアルゴリズムに従ってテキストに色を付けるコードを実行しています。これはうまくいきます。
問題は、カラーリング操作が元に戻すマネージャー (EventType.CHANGE の DefaultDocumentEvent) に登録されていることです。したがって、ユーザーが元に戻すをクリックすると、色が消えます。2 番目の取り消し要求でのみ、テキスト自体がロールバックされます。
(色付けアルゴリズムはやや遅いので、挿入時にテキストに色を付けることができないことに注意してください)。
CHANGE イベントが元に戻すマネージャーに到達しないようにしようとすると、何度か元に戻す要求の後に例外が発生します。これは、ドキュメントの内容が元に戻す編集オブジェクトが期待するものに準拠していないためです。
何か案は?