>  기사  >  Java  >  JTextArea에서 특정 텍스트에 색상을 지정하는 방법은 무엇입니까?

JTextArea에서 특정 텍스트에 색상을 지정하는 방법은 무엇입니까?

Patricia Arquette
Patricia Arquette원래의
2024-11-19 10:31:03406검색

How to Color Specific Text in a JTextArea?

JTextArea에서 텍스트 색상을 조작하는 방법

JTextArea는 일반적으로 색상과 같은 서식 속성이 전체 문서에 균일하게 적용되는 일반 텍스트를 처리합니다. 그러나 JTextArea의 특정 부분의 텍스트 색상을 사용자 정의하려는 경우 JTextPane 또는 JEditorPane을 활용할 수 있습니다.

JTextPane을 사용하면 색상 사용자 정의 기능으로 텍스트 영역을 향상할 수 있습니다.

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();
            }
        });
    }
}

이 코드에서appendToPane 메소드는 적절한 색상을 설정하면서 텍스트 창에 텍스트를 추가합니다. 그 결과 텍스트의 다양한 섹션이 고유한 색상을 나타내는 텍스트 영역이 생성되어 특수 키워드나 데이터를 시각적으로 더 잘 표현할 수 있습니다.

위 내용은 JTextArea에서 특정 텍스트에 색상을 지정하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.