Rumah  >  Artikel  >  Java  >  Bagaimanakah saya boleh menyesuaikan warna teks dalam segmen tertentu JTextArea?

Bagaimanakah saya boleh menyesuaikan warna teks dalam segmen tertentu JTextArea?

Linda Hamilton
Linda Hamiltonasal
2024-11-28 00:24:11103semak imbas

How can I customize text color within specific segments of a JTextArea?

Menyesuaikan Warna Teks dalam JTextArea

JTextArea, komponen yang biasa digunakan untuk memaparkan teks biasa, tidak mempunyai fleksibiliti untuk menyesuaikan warna teks tertentu segmen dalam dokumen. Untuk mencapai tahap kawalan ini, pertimbangkan untuk menggunakan JTextPane sebaliknya.

JTextPane menyediakan set ciri yang berkuasa untuk memanipulasi pemformatan teks, termasuk keupayaan untuk menetapkan warna yang berbeza kepada bahagian teks yang berbeza. Begini cara anda boleh mencapai penyesuaian ini:

import java.awt.*;
import javax.swing.*;
import javax.swing.text.*;

public class TextCustomization {

    public static void main(String[] args) {
        // Create a JTextPane for displaying the text
        JTextPane textPane = new JTextPane();

        // Create a SimpleAttributeSet to control text attributes
        SimpleAttributeSet blueAttributeSet = new SimpleAttributeSet();
        StyleConstants.setForeground(blueAttributeSet, Color.BLUE);

        SimpleAttributeSet greenAttributeSet = new SimpleAttributeSet();
        StyleConstants.setForeground(greenAttributeSet, Color.GREEN);

        SimpleAttributeSet redAttributeSet = new SimpleAttributeSet();
        StyleConstants.setForeground(redAttributeSet, Color.RED);

        SimpleAttributeSet orangeAttributeSet = new SimpleAttributeSet();
        StyleConstants.setForeground(orangeAttributeSet, Color.ORANGE);

        // Set the text and apply color attributes to specific segments
        String text = "LOAD R1, 1\nDEC R1\nSTORE M, R1\nADD R4, R1,8";
        textPane.setText(text);

        // Color specific words
        textPane.setParagraphAttributes(blueAttributeSet, true);
        textPane.setCaretPosition(0);
        textPane.setSelectedTextColor(Color.BLUE);
        textPane.setSelectionStart(0);
        textPane.setSelectionEnd(4);
        textPane.replaceSelection("LOAD");

        textPane.setParagraphAttributes(greenAttributeSet, true);
        textPane.setCaretPosition(5);
        textPane.setSelectedTextColor(Color.GREEN);
        textPane.setSelectionStart(5);
        textPane.setSelectionEnd(7);
        textPane.replaceSelection("R1,");

        textPane.setParagraphAttributes(redAttributeSet, true);
        textPane.setCaretPosition(9);
        textPane.setSelectedTextColor(Color.RED);
        textPane.setSelectionStart(9);
        textPane.setSelectionEnd(10);
        textPane.replaceSelection("M");

        textPane.setParagraphAttributes(orangeAttributeSet, true);
        textPane.setCaretPosition(12);
        textPane.setSelectedTextColor(Color.ORANGE);
        textPane.setSelectionStart(12);
        textPane.setSelectionEnd(13);
        textPane.replaceSelection("R1,");
    }
}

Dalam contoh ini, coretan kod menunjukkan cara menukar warna kata kunci tertentu ("LOAD," "DEC," "STORE," "ADD," "R1," "M," dan nombor) kepada warna yang ditetapkan (biru, hijau, merah dan oren). Dengan menetapkan atribut yang sesuai dan menggantikan segmen teks yang dipilih, anda boleh menyesuaikan penampilan teks dalam JTextPane.

Atas ialah kandungan terperinci Bagaimanakah saya boleh menyesuaikan warna teks dalam segmen tertentu JTextArea?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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