Heim > Java > javaLernprogramm > Wie färbe ich bestimmten Text in einer JTextArea ein?

Wie färbe ich bestimmten Text in einer JTextArea ein?

Patricia Arquette
Freigeben: 2024-11-19 10:31:03
Original
476 Leute haben es durchsucht

How to Color Specific Text in a JTextArea?

So manipulieren Sie die Textfarbe in JTextArea

JTextArea verarbeitet normalerweise einfachen Text, bei dem Formatierungsattribute wie Farbe einheitlich auf das gesamte Dokument angewendet werden. Wenn Sie jedoch die Textfarbe bestimmter Teile in einer JTextArea anpassen möchten, können Sie JTextPane oder JEditorPane verwenden.

Mit JTextPane können Sie den Textbereich mit Farbanpassungsfunktionen erweitern:

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();
            }
        });
    }
}
Nach dem Login kopieren

In diesem Code hängt die appendToPane-Methode Text an den Textbereich an und legt dabei die entsprechende Farbe fest. Das Ergebnis ist ein Textbereich, in dem verschiedene Textabschnitte unterschiedliche Farben aufweisen, was eine verbesserte visuelle Darstellung spezieller Schlüsselwörter oder Daten ermöglicht.

Das obige ist der detaillierte Inhalt vonWie färbe ich bestimmten Text in einer JTextArea ein?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage