JTextPaneに修飾した文字列を挿入

編集者:Terai Atsuhiro
作成日:2004-01-13
更新日:2021-12-24 (金) 12:38:13

概要

JTextPaneに、スタイル付けした文字列を挿入して、ログ風に表示します。

http://terai.xrea.jp/swing/styleconstants/screenshot.png

サンプルコード

private void append(final String str, final boolean error) {
  SwingUtilities.invokeLater(new Runnable() {
    public void run() {
      SimpleAttributeSet sas = null;
      if(!error) {
        //sas = new SimpleAttributeSet(jtp.getCharacterAttributes());
        sas = new SimpleAttributeSet();
        StyleConstants.setForeground(sas, Color.red);
        //StyleConstants.setBold(sas, true);
        //StyleConstants.setFontFamily(sas, "Monospaced");
        //StyleConstants.setFontSize(sas, 32);
      }
      try{
        Document doc = jtp.getDocument();
        doc.insertString(doc.getLength(), str+"\n", sas);
        jtp.setCaretPosition(doc.getLength());
      }catch(BadLocationException e) {}
    }
  });
}

解説

StyleConstantsで文字属性をSimpleAttributeSetに設定し、これを文字列と一緒にDocument#insertStringメソッドを使って挿入しています。

コメント