Rumah > Java > javaTutorial > Bagaimana untuk Mewarnakan Teks Khusus dalam JTextArea?

Bagaimana untuk Mewarnakan Teks Khusus dalam JTextArea?

Patricia Arquette
Lepaskan: 2024-11-19 10:31:03
asal
509 orang telah melayarinya

How to Color Specific Text in a JTextArea?

Cara Memanipulasi Warna Teks dalam JTextArea

JTextArea lazimnya mengendalikan teks biasa, di mana atribut pemformatan seperti warna digunakan secara seragam pada keseluruhan dokumen. Walau bagaimanapun, jika anda ingin menyesuaikan warna teks bahagian tertentu dalam JTextArea, anda boleh menggunakan JTextPane atau JEditorPane.

Menggunakan JTextPane, anda boleh meningkatkan kawasan teks dengan keupayaan penyesuaian warna:

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();
            }
        });
    }
}
Salin selepas log masuk

Dalam kod ini, kaedah appendToPane menambahkan teks pada anak tetingkap teks sambil menetapkan warna yang sesuai. Hasilnya ialah kawasan teks di mana bahagian teks yang berbeza mempamerkan warna yang berbeza, membolehkan perwakilan visual kata kunci atau data khas yang dipertingkatkan.

Atas ialah kandungan terperinci Bagaimana untuk Mewarnakan Teks Khusus dalam JTextArea?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan