今まで、どんな処理をすればいいのかわからずに、わかった時点でどんどん機能を追加する、というやり方だった。なのでpaintComponentメソッドの中でキーワードの色分けの処理を書いてたが、だいたいどんなものかわかったので整理しようと思う。
まず、大雑把なクラス構成を考えると、
- テキストを内部にもつDocumentクラス
- Documentから文字列を取得してキーワードの判定を行うScannerクラス
- 色、フォント、描画するキーワードを保持するTokenクラス
- 実際に描画を行うJEditorクラス
という感じだろうか。入力を受け取りDocumentの編集を行うクラスはJEditorにするのか別のクラスを作るのか…考えてるうちは楽しいかも