ひしだまの変更履歴

ひしだまHPの更新履歴。
主にTRPGリプレイの元ネタ集、プログラミング技術メモと自作ソフト、好きなゲームや音楽です。

JTextPaneで色を着けて折り返しを無くす

2009-03-22 22:40:45 | PG(Java)

Swingで画面上に簡単なメッセージエリアを作ってログ出力をさせることにした。
JTextAreaですぐ出来たけれど、どうせならEclipseのコンソールのように色を着けたいな~と思った。
でもどうやらJTextAreaでは色を着けたりという修飾は出来ないらしい。そういう場合はJTextPaneを使うのだそうだ。

で、色を着けるのはこれまた簡単に出来たけど、テキストが折り返されるようになってしまった。JTextAreaのデフォルトは折り返し無しなのだが、JTextPaneでは折り返すのがデフォルトらしい。
で、JTextAreaは折り返し有無を設定できるのだが、JTextPaneではそういう設定は用意されていない。折り返し要否を判定するメソッドをオーバーライドすることになる。
で、そのメソッドで常にfalseを返すようにしてやれば折り返さないようになったけど、初期表示がおかしい(苦笑) 文字列が右端まで達していない場合、文字のある列までしか背景が白くならず、他は灰色のまま。

そこから先はスーパークラス(JEditorPane)内のロジックを参考に、試行錯誤。
要するに、表示したい文字列が右端まで達していない場合は(既存ロジックと同じく)trueを返し、達したらfalseを返すようにすればいい。
これで、なんとか折り返し無しを実現することが出来た。

→自作クラス:ExTextPane



最新の画像もっと見る

コメントを投稿