JTextPaneにTabSetを設定してTabStopの文字列揃えをテストする
Total: 4337
, Today: 3
, Yesterday: 1
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, KotlinExplanation
TabStop.ALIGN_LEFT
- タブに続く文字をタブ位置に左揃えで配置
TabStop.ALIGN_CENTER
- タブ以降の文字(次のタブ、または改行までのすべての文字)がタブ位置を中心に揃うように配置
TabStop.ALIGN_RIGHT
- タブ以降の文字(次のタブ、または改行までのすべての文字)がタブ位置に対して右揃えになるよう配置
TabStop.ALIGN_DECIMAL
- タブ以降の文字をタブ位置に対して小数点揃えになるよう配置
TabStop.ALIGN_BAR
JTextPane
では未実装で罫線は描画されない
- リーダーとして
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
はどちらも不変(イミュータブル)です。」の意味?