Cara Memanipulasi Warna Teks dalam JTextArea
JTextArea lazimnya mengendalikan teks biasa, di mana atribut pemformatan seperti warna digunakan secara seragam pada keseluruhan dokumen. Walau bagaimanapun, jika anda ingin menyesuaikan warna teks bahagian tertentu dalam JTextArea, anda boleh menggunakan JTextPane atau JEditorPane.
Menggunakan JTextPane, anda boleh meningkatkan kawasan teks dengan keupayaan penyesuaian warna:
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(); } }); } }
Dalam kod ini, kaedah appendToPane menambahkan teks pada anak tetingkap teks sambil menetapkan warna yang sesuai. Hasilnya ialah kawasan teks di mana bahagian teks yang berbeza mempamerkan warna yang berbeza, membolehkan perwakilan visual kata kunci atau data khas yang dipertingkatkan.
Atas ialah kandungan terperinci Bagaimana untuk Mewarnakan Teks Khusus dalam JTextArea?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!