How to Manipulate Text Color in JTextArea
JTextArea typically handles plain text, where formatting attributes such as color apply uniformly to the entire document. However, if you desire to customize the text color of specific portions in a JTextArea, you can utilize JTextPane or JEditorPane.
Using JTextPane, you can enhance the text area with color customization capabilities:
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(); } }); } }
In this code, the appendToPane method appends text to the text pane while setting the appropriate color. The result is a text area where different sections of text exhibit distinct colors, allowing for improved visual representation of special keywords or data.
The above is the detailed content of How to Color Specific Text in a JTextArea?. For more information, please follow other related articles on the PHP Chinese website!