首頁 > Java > java教程 > 如何為 JTextArea 中的特定文字著色?

如何為 JTextArea 中的特定文字著色?

Patricia Arquette
發布: 2024-11-19 10:31:03
原創
491 人瀏覽過

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中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板