Swing/TabSet のバックアップ(No.12)
- バックアップ一覧
- 差分 を表示
- 現在との差分 を表示
- 現在との差分 - Visual を表示
- ソース を表示
- Swing/TabSet へ行く。
- 1 (2015-03-09 (月) 14:43:23)
- 2 (2015-03-09 (月) 14:46:02)
- 3 (2015-03-16 (月) 17:24:29)
- 4 (2015-03-16 (月) 17:28:33)
- 5 (2016-05-19 (木) 21:03:05)
- 6 (2017-08-30 (水) 17:44:56)
- 7 (2018-09-14 (金) 20:05:57)
- 8 (2020-09-16 (水) 23:44:01)
- 9 (2020-10-02 (金) 10:20:10)
- 10 (2022-07-07 (木) 14:15:35)
- 11 (2025-01-03 (金) 08:57:02)
- 12 (2025-01-03 (金) 09:01:23)
- 13 (2025-01-03 (金) 09:02:38)
- 14 (2025-01-03 (金) 09:03:21)
- 15 (2025-01-03 (金) 09:04:02)
- 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:
Summary
JTextPane
のパラグラフ属性にTabSet
を設定し、TabStop
による文字列の揃えをテストします。
Screenshot

Advertisement
サンプルコード
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, Kotlin解説
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
はどちらも不変(イミュータブル)です。」の意味?