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 中国語 Web サイトの他の関連記事を参照してください。