Heim  >  Artikel  >  Java  >  Wie kann ich die Textfarbe innerhalb bestimmter Segmente einer JTextArea anpassen?

Wie kann ich die Textfarbe innerhalb bestimmter Segmente einer JTextArea anpassen?

Linda Hamilton
Linda HamiltonOriginal
2024-11-28 00:24:11103Durchsuche

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

Anpassen der Textfarbe in JTextArea

JTextArea, eine Komponente, die häufig zum Anzeigen von einfachem Text verwendet wird, verfügt nicht über die Flexibilität, die Farbe von bestimmtem Text anzupassen Segmente innerhalb eines Dokuments. Um dieses Maß an Kontrolle zu erreichen, sollten Sie stattdessen die Verwendung von JTextPane in Betracht ziehen.

JTextPane bietet eine Reihe leistungsstarker Funktionen zum Bearbeiten der Textformatierung, einschließlich der Möglichkeit, verschiedenen Textabschnitten unterschiedliche Farben zuzuweisen. So können Sie diese Anpassung erreichen:

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

In diesem Beispiel zeigt das Code-Snippet, wie Sie die Farbe bestimmter Schlüsselwörter ändern („LOAD“, „DEC“, „STORE“, „ADD“, „R1“, „M“ und Zahlen) auf bestimmte Farben (Blau, Grün, Rot und Orange). Durch Festlegen der entsprechenden Attribute und Ersetzen ausgewählter Textsegmente können Sie das Erscheinungsbild von Text im JTextPane anpassen.

Das obige ist der detaillierte Inhalt vonWie kann ich die Textfarbe innerhalb bestimmter Segmente einer JTextArea anpassen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn