TITLE:JTextPaneでタブサイズを設定

JTextPaneでタブサイズを設定

編集者:Terai Atsuhiro~

作成日:2005-04-25
更新日:2023-04-10 (月) 00:10:17
  • category: swing folder: TabSize title: JTextPaneでタブサイズを設定 tags: [JTextPane, StyledDocument, SimpleAttributeSet, TabSet, TabStop] author: aterai pubdate: 2005-04-25T00:01:26+09:00 description: JTextPaneのStyledDocumentが使用するパラグラフ属性として、タブストップが展開する文字数を設定します。 image: https://lh5.googleusercontent.com/_9Z4BYR88imo/TQTUxfmvVtI/AAAAAAAAAmk/hIXOEpGYKYw/s800/TabSize.png

概要

JTextPaneStyledDocumentが使用するパラグラフ属性として、タブストップが展開する文字数を設定します。

概要

JTextPaneでタブサイズを設定します。tabsize in JTextPaneからの引用です。

#screenshot

サンプルコード

#spanend
 textpane.setFont(new Font("monospaced", Font.PLAIN, 12));
 FontMetrics fm = textpane.getFontMetrics(textpane.getFont());
 int charWidth = fm.charWidth('m');
 int tabLength = charWidth * 4;
 TabStop[] tabs = new TabStop[10];
 for(int j=0;j<tabs.length;j++) {
   tabs[j] = new TabStop((j+1)*tabLength);
 }
 TabSet tabSet = new TabSet(tabs);
 SimpleAttributeSet attrs = new SimpleAttributeSet();
 StyleConstants.setTabSet(attrs, tabSet);
 int l = textpane.getDocument().getLength();
 textpane.getStyledDocument().setParagraphAttributes(0, l, attrs, false);
#spanadd
* サンプルコード [#sourcecode]
#spanend
#spanadd
#code(link){{
#spanend
#spanadd
textpane.setFont(new Font(Font.MONOSPACED, Font.PLAIN, 12));
#spanend
#spanadd
FontMetrics fm = textpane.getFontMetrics(textpane.getFont());
#spanend
#spanadd
int charWidth = fm.charWidth('m');
#spanend
#spanadd
int tabLength = charWidth * 4;
#spanend
#spanadd
TabStop[] tabs = new TabStop[10];
#spanend
#spanadd
for (int j = 0; j < tabs.length; j++) {
#spanend
  tabs[j] = new TabStop((j + 1) * tabLength);
#spanadd
}
#spanend
#spanadd
TabSet tabSet = new TabSet(tabs);
#spanend
#spanadd
SimpleAttributeSet attrs = new SimpleAttributeSet();
#spanend
#spanadd
StyleConstants.setTabSet(attrs, tabSet);
#spanend
#spanadd
int l = textpane.getDocument().getLength();
#spanend
#spanadd
textpane.getStyledDocument().setParagraphAttributes(0, l, attrs, false);
#spanend
  • &jnlp;
  • &jar;
  • &zip;

解説

JTextAreaはsetTabSizeメソッドでタブサイズを指定することができますが、JTextPaneでは、上記のサンプルのような方法でタブサイズを指定します。

解説

  • JTextArea
  • JTextPane
    • JTextPaneからStyledDocumentを取得し、TabStopから作成したTabSetをパラグラフ属性として追加することでタブの幅を指定

参考リンク

参考リンク

コメント

コメント