« Undo の充実 (2) TextComponentUndoManager | トップページ | Undo の充実 (4) StampEditor, StampTree »

2020年7月22日 (水)

Undo の充実 (3) AtokListener

ATOK には,確定直後に ctrl-delete を押すと,未確定状態に戻してくれる「確定アンドゥ」という便利な機能がある。しかし JTextPane でこの操作を行うと,前の確定文字が消えずに未確定文字列が確定文字列の後ろに出る状態になってしまう(下図)。また,間違って半角アルファベットで打ち込んでしまった文を,かなキーの2度打ちでひらがなに戻して変換したり,間違って打ち込んでしまった英単語を,英数キーの2度打ちで半角アルファベットに変換してくれる機能も便利なのだが,これも JTextPane だともとの文字が残ってしまっていた

Atoklistener

ずっと何とかならないかと思っていたのだが,今回 TextComponentUndoManager に【おまとめ undo】機能を付けたので,ATOK の確定アンドゥと同時に JTextPane に undo を1回かけてやれば,前の確定文字列を消せるのではないかと思いついた。KeyListener と InputMethodListener を組み込んだ AtokListener を作って,上記動作をプログラムしたところうまく動作した。頑張ってプログラムしたおかげで日本語入力環境がぐっと便利になった。

Atok

« Undo の充実 (2) TextComponentUndoManager | トップページ | Undo の充実 (4) StampEditor, StampTree »

OpenDolphin」カテゴリの記事