Swing/TabSet のバックアップの現在との差分(No.2)
- category: swing folder: TabSet title: JTextPaneにTabSetを設定してTabStopの文字列揃えをテストする tags: [JTextPane, StyledDocument, TabSet, TabStop] author: aterai pubdate: 2015-03-02T00:15:36+09:00 description: JTextPaneのパラグラフ属性にTabSetを設定し、TabStopによる文字列の揃えをテストします。 image:
概要
JTextPaneのパラグラフ属性にTabSetを設定し、TabStopによる文字列の揃えをテストします。概要
JTextPane
のパラグラフ属性にTabSet
を設定し、TabStop
による文字列の揃えをテストします。
Screenshot
Advertisement
サンプルコード
サンプルコード
#spandel
textPane.setText(
#spanend
"LEFT1\tCENTER\tRIGHT1\t3.14\n"
+ "LEFT22\tCENTER22\tRIGHT22\t12.3\n"
+ "LEFT333\tCENTER333\tRIGHT333\t1.23\n"
+ "LEFT4444\tCENTER4444\tRIGHT4444\t0.9876\n");
#spandel
SimpleAttributeSet attr = new SimpleAttributeSet();
#spanend
#spanadd
textPane.setText(String.join("\n",
#spanend
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")));
#spanadd
#spanend
#spanadd
// MutableAttributeSet attr = new SimpleAttributeSet();
#spanend
#spanadd
Style attr = textPane.getStyle(StyleContext.DEFAULT_STYLE);
#spanend
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),
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)
}));
#spandel
textPane.getStyledDocument().setParagraphAttributes(
#spanend
0, textPane.getDocument().getLength(), attr, false);
#spanadd
textPane.setParagraphAttributes(attr, false);
#spanend
View in GitHub: Java, Kotlin解説
解説
TabStop.ALIGN_LEFT
- タブに続く文字をタブ位置に左揃えで配置
TabStop.ALIGN_CENTER
- タブ以降の文字(次のタブ、または改行までのすべての文字)が、タブ位置を中心にして揃うように配置
- タブ以降の文字(次のタブ、または改行までのすべての文字)がタブ位置を中心に揃うように配置
TabStop.ALIGN_RIGHT
- タブ以降の文字(次のタブ、または改行までのすべての文字)が、タブ位置に対して右揃えになるよう配置
- タブ以降の文字(次のタブ、または改行までのすべての文字)がタブ位置に対して右揃えになるよう配置
TabStop.ALIGN_DECIMAL
- タブ以降の文字を、タブ位置に対して小数点揃えになるよう配置
- タブ以降の文字をタブ位置に対して小数点揃えになるよう配置
TabStop.ALIGN_BAR
-
JTextPane
では未実装で、罫線は描画されない -
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
はどちらも不変(イミュータブル)です。」の意味?
- リーダーとして、
- リーダーとして
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
はどちらも不変(イミュータブル)です。」の意味?