Swing、JEditorPaneでの改行

JEditorPaneでの改行はベンダー依存というよりsetTextにて設定された文字列に影響する。
設定された文字列に改行コードが含まれればその改行コードとなるし、含まれていなければ\nとなる。
改行コードはなにかというところについては、JEditorPaneのDocumentにより設定される。
JEditorPaneのDocumnetはPlainDocumentでAbstractDocumentのサブクラスになる。
AbstractDocumentはputPropertyというメソッドがあり、改行コードを設定することができる。
改行コードを固定する必要があるのであれば、setTextの実行後にDocumentに対して、


putProperty( DefaultEditorKit.EndOfLineStringProperty, "\r\n" );

と設定してやれば、改行コードは常に固定となる。

通常はSystem.getPropertyからOS毎の改行コードを取得するというのが作法だが、このコントロールの動作必ずしもそうならない。
仕様上の問題で改行コードは固定したい場合はこの手法をとるほうがよい、と思う。