まだ、俺が作っているJEditor(同じ名前のがいくつもあるだろうから…)に編集機能をつけてないときに行ルーラーを表示させていたときがあったが、それはJEditorクラスのpaintComponent内で行ルーラーとテキストの描画をまとめて行っていた。なので今回は行ルーラー用にJComponentを継承したクラスを作り、それをJScrollPaneのRowHeaderに追加しようと思い、それをやった結果がこれ↓
不満な点がある、それは
- 水平方向のスクロールバーの左端が行ルーラーより右にある
- 垂直方向にスクロールさせるとRowHeaderも一緒にスクロールしてしまう
1は好みの問題かもしれないが、俺がWindowsでよく使っていたTeraPadでは水平スクロールバーはウインドウの左端の方から表示されていたので気になってしまうらしい。
2は一緒にスクロールされるということはテキストエディタ本体のクラスとルーラーの高さを常にエディタ本体より高くしておかないと行ルーラーが途切れてしまう。
まぁ、ルーラーをどうやって表示させるかは気分次第でかわりそうだ