Maison >Java >javaDidacticiel >Comment puis-je personnaliser la couleur du texte dans des segments spécifiques d'un JTextArea ?

Comment puis-je personnaliser la couleur du texte dans des segments spécifiques d'un JTextArea ?

Linda Hamilton
Linda Hamiltonoriginal
2024-11-28 00:24:11124parcourir

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

Personnalisation de la couleur du texte dans JTextArea

JTextArea, un composant couramment utilisé pour afficher du texte brut, n'a pas la flexibilité nécessaire pour personnaliser la couleur d'un texte spécifique segments au sein d’un document. Pour atteindre ce niveau de contrôle, envisagez plutôt d'utiliser JTextPane.

JTextPane fournit un ensemble puissant de fonctionnalités pour manipuler le formatage du texte, y compris la possibilité d'attribuer des couleurs distinctes à différentes parties du texte. Voici comment réaliser cette personnalisation :

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,");
    }
}

Dans cet exemple, l'extrait de code montre comment modifier la couleur de mots clés spécifiques ("LOAD", "DEC", "STORE", "ADD", "R1", "M" et chiffres) aux couleurs désignées (bleu, vert, rouge et orange). En définissant les attributs appropriés et en remplaçant les segments de texte sélectionnés, vous pouvez personnaliser l'apparence du texte dans le JTextPane.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn