1

私はネットビーンズを使ったプロジェクトに取り組んでいます。jTextPane のテキストの複数の場所にある 1 文字だけに色を付けようとしています。StyledDocument.setCharacterAttributes を使用しようとしましたが、少なくとも 2 文字に色を付けることができますが、これは私が望むものではありません。

今のところ、私はこのコードを使用しています:

StyledDocument doc = jTextPane1.getStyledDocument();
javax.swing.text.Style style = jTextPane1.addStyle("Red", null);
StyleConstants.setForeground(style, Color.RED);
doc.setCharacterAttributes(5, 2, jTextPane1.getStyle("Red"), true); 

誰でもこの問題を解決するのに役立ちますか?

前もって感謝します。

4

2 に答える 2

2

これは、1 つの文字に色を付ける例です。

import java.awt.Color;
import javax.swing.*;
import javax.swing.text.DefaultStyledDocument;
import javax.swing.text.StyleConstants;
import javax.swing.text.StyledDocument;

public class ColoredTextTest {

    public static void main(String[] args) {
        SwingUtilities.invokeLater(new Runnable() {
            @Override
            public void run() {
                JFrame frame = initgui();
                frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
                frame.pack();
                frame.setVisible(true);
            }
        });
    }

    private static JFrame initgui() {
        JFrame frame = new JFrame("Test");
        JPanel panel = new JPanel();
        StyledDocument doc = (StyledDocument) new DefaultStyledDocument();
        JTextPane textpane = new JTextPane(doc);
        textpane.setText("Test");
        javax.swing.text.Style style = textpane.addStyle("Red", null);
        StyleConstants.setForeground(style, Color.RED);
        doc.setCharacterAttributes(0, 1, textpane.getStyle("Red"), true); 
        panel.add(textpane);
        frame.add(panel);
        return frame;
    }
}
于 2012-05-04T16:52:21.320 に答える
0

のドキュメントを読みましたsetCharacterAttributesか?

lengthパラメータを 2 に設定しています。1 に設定します。

于 2012-05-04T14:46:16.977 に答える