JTextPaneにTabSetを設定してTabStopの文字列揃えをテストする
Total: 4729, Today: 1, Yesterday: 4
Posted by aterai at
Last-modified:
Summary
JTextPaneのパラグラフ属性にTabSetを設定し、TabStopによる文字列の揃えをテストします。
Screenshot

Advertisement
Source Code Examples
textPane.setText(String.join("\n",
String.join("\t", "LEFT1", "CENTER1", "RIGHT1", "3.14"),
String.join("\t", "LEFT22", "CENTER22", "RIGHT22", "12.3"),
String.join("\t", "LEFT333", "CENTER333", "RIGHT333", "123.45"),
String.join("\t", "LEFT4444", "CENTER4444", "RIGHT4444", "0.9876")));
// MutableAttributeSet attr = new SimpleAttributeSet();
Style attr = textPane.getStyle(StyleContext.DEFAULT_STYLE);
StyleConstants.setTabSet(attr, new TabSet(new TabStop[] {
new TabStop(0f, TabStop.ALIGN_LEFT, TabStop.LEAD_NONE),
new TabStop(100f, TabStop.ALIGN_CENTER, TabStop.LEAD_NONE),
new TabStop(200f, TabStop.ALIGN_RIGHT, TabStop.LEAD_NONE),
new TabStop(250f, TabStop.ALIGN_DECIMAL, TabStop.LEAD_NONE)
// new TabStop(300f, TabStop.ALIGN_BAR, TabStop.LEAD_NONE)
}));
textPane.setParagraphAttributes(attr, false);
View in GitHub: Java, KotlinDescription
TabStop.ALIGN_LEFT- タブに続く文字をタブ位置に左揃えで配置
TabStop.ALIGN_CENTER- タブ以降の文字(次のタブ、または改行までのすべての文字)がタブ位置を中心に揃うように配置
TabStop.ALIGN_RIGHT- タブ以降の文字(次のタブ、または改行までのすべての文字)がタブ位置に対して右揃えになるよう配置
TabStop.ALIGN_DECIMAL- タブ以降の文字をタブ位置に対して小数点揃えになるよう配置
TabStop.ALIGN_BARJTextPaneでは未実装で罫線は描画されない
- リーダーとして
TabStop.LEAD_DOTS、TabStop.LEAD_EQUALS、TabStop.LEAD_HYPHENS、TabStop.LEAD_THICKLINE、TabStop.LEAD_UNDERLINEが定義されているがJTextPaneではこれらは描画されず、すべてTabStop.LEAD_NONEと同じ扱い - ドキュメントの「タブ・セットは変更できません。」は翻訳元は「It is also immutable.」なので「
TabSet、TabStopはどちらも不変(イミュータブル)です。」の意味?