Benutzerdefinierte Textfärbung in JTextArea-Alternativen
In JTextArea wirkt sich die Anwendung von Textformatierung auf das gesamte Dokument und nicht auf bestimmte Zeichen oder Abschnitte aus. Um eine benutzerdefinierte Textfärbung zu erreichen, sollten Sie alternative Komponenten wie JTextPane oder JEditorPane verwenden.
Benutzerdefinierte Textfärbung mit JTextPane
Mit JTextPane können Sie verschiedene Farben für bestimmte Textabschnitte festlegen :
import java.awt.Color; import java.awt.Insets; import java.awt.event.EmptyBorder; import javax.swing.JTextPane; import javax.swing.text.AttributeSet; import javax.swing.text.SimpleAttributeSet; import javax.swing.text.StyleConstants; import javax.swing.text.StyleContext; public class TextColoringDemo { public void setTextColors() { JTextPane textPane = new JTextPane(); textPane.setBorder(new EmptyBorder(new Insets(10, 10, 10, 10))); StyleContext styleContext = StyleContext.getDefaultStyleContext(); AttributeSet blueAttributeSet = styleContext.addAttribute( SimpleAttributeSet.EMPTY, StyleConstants.Foreground, Color.BLUE ); AttributeSet greenAttributeSet = styleContext.addAttribute( SimpleAttributeSet.EMPTY, StyleConstants.Foreground, Color.GREEN ); AttributeSet redAttributeSet = styleContext.addAttribute( SimpleAttributeSet.EMPTY, StyleConstants.Foreground, Color.RED ); AttributeSet orangeAttributeSet = styleContext.addAttribute( SimpleAttributeSet.EMPTY, StyleConstants.Foreground, Color.ORANGE ); // Set the color of specific text sections textPane.setCharacterAttributes(blueAttributeSet, true); textPane.replaceSelection("LOAD R1, 1\n"); textPane.setCharacterAttributes(blueAttributeSet, true); textPane.replaceSelection("DEC R1\n"); textPane.setCharacterAttributes(blueAttributeSet, true); textPane.replaceSelection("STORE M, R1\n"); textPane.setCharacterAttributes(blueAttributeSet, true); textPane.replaceSelection("ADD R4, R1,8\n"); textPane.setCharacterAttributes(greenAttributeSet, true); textPane.replaceSelection("R1\n"); textPane.setCharacterAttributes(greenAttributeSet, true); textPane.replaceSelection("R4\n"); textPane.setCharacterAttributes(redAttributeSet, true); textPane.replaceSelection("M\n"); textPane.setCharacterAttributes(orangeAttributeSet, true); textPane.replaceSelection("1\n"); textPane.setCharacterAttributes(orangeAttributeSet, true); textPane.replaceSelection("8\n"); } }
Mit diesem Ansatz können Sie die Farbe eines beliebigen angegebenen Textabschnitts innerhalb des JTextPane anpassen Komponente.
Das obige ist der detaillierte Inhalt vonWie erreicht man eine benutzerdefinierte Textfärbung in Java Swing über JTextArea hinaus?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!