JTextArea 内の特定のテキストに色を付けるにはどうすればよいですか?

Patricia Arquette
リリース: 2024-11-19 10:31:03
オリジナル
409 人が閲覧しました

How to Color Specific Text in a JTextArea?

JTextArea でテキストの色を操作する方法

JTextArea は通常、色などの書式設定属性がドキュメント全体に均一に適用されるプレーン テキストを処理します。ただし、JTextArea の特定部分のテキストの色をカスタマイズしたい場合は、JTextPane または JEditorPane を利用できます。

JTextPane を使用すると、色のカスタマイズ機能でテキスト領域を拡張できます。

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.border.*;
import javax.swing.text.AttributeSet;
import javax.swing.text.SimpleAttributeSet;
import javax.swing.text.StyleConstants;
import javax.swing.text.StyleContext;

public class TextPaneTest extends JFrame {

    private JPanel topPanel;
    private JTextPane tPane;

    public TextPaneTest() {
        // ... (Initialize components and set layout)

        // Create a custom method to append text with specified color
        appendToPane(tPane, "My Name is Too Good.\n", Color.RED);
        appendToPane(tPane, "I wish I could be ONE of THE BEST on ", Color.BLUE);
        appendToPane(tPane, "Stack", Color.DARK_GRAY);
        appendToPane(tPane, "Over", Color.MAGENTA);
        appendToPane(tPane, "flow", Color.ORANGE);

        // Add the text pane to the content pane
        getContentPane().add(topPanel);

        // ... (Finishing touches for the frame)
    }

    private void appendToPane(JTextPane tp, String msg, Color c) {
        StyleContext sc = StyleContext.getDefaultStyleContext();
        AttributeSet aset = sc.addAttribute(SimpleAttributeSet.EMPTY, StyleConstants.Foreground, c);

        aset = sc.addAttribute(aset, StyleConstants.FontFamily, "Lucida Console");
        aset = sc.addAttribute(aset, StyleConstants.Alignment, StyleConstants.ALIGN_JUSTIFIED);

        int len = tp.getDocument().getLength();
        tp.setCaretPosition(len);
        tp.setCharacterAttributes(aset, false);
        tp.replaceSelection(msg);
    }

    public static void main(String[] args) {
        SwingUtilities.invokeLater(new Runnable() {
            public void run() {
                new TextPaneTest();
            }
        });
    }
}
ログイン後にコピー

このコードでは、appendToPane メソッドが適切な色を設定しながらテキスト ペインにテキストを追加します。その結果、テキストのさまざまなセクションが異なる色を示すテキスト領域が作成され、特別なキーワードやデータの視覚的表現が向上します。

以上がJTextArea 内の特定のテキストに色を付けるにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート