Swingで画面上に簡単なメッセージエリアを作ってログ出力をさせることにした。
JTextAreaですぐ出来たけれど、どうせならEclipseのコンソールのように色を着けたいな~と思った。
でもどうやらJTextAreaでは色を着けたりという修飾は出来ないらしい。そういう場合はJTextPaneを使うのだそうだ。
で、色を着けるのはこれまた簡単に出来たけど、テキストが折り返されるようになってしまった。JTextAreaのデフォルトは折り返し無しなのだが、JTextPaneでは折り返すのがデフォルトらしい。
で、JTextAreaは折り返し有無を設定できるのだが、JTextPaneではそういう設定は用意されていない。折り返し要否を判定するメソッドをオーバーライドすることになる。
で、そのメソッドで常にfalseを返すようにしてやれば折り返さないようになったけど、初期表示がおかしい(苦笑) 文字列が右端まで達していない場合、文字のある列までしか背景が白くならず、他は灰色のまま。
そこから先はスーパークラス(JEditorPane)内のロジックを参考に、試行錯誤。
要するに、表示したい文字列が右端まで達していない場合は(既存ロジックと同じく)trueを返し、達したらfalseを返すようにすればいい。
これで、なんとか折り返し無しを実現することが出来た。
→自作クラス:ExTextPane
※コメント投稿者のブログIDはブログ作成者のみに通知されます