Ich denke, so weit wie ich vermutete, müssen Sie etwas anderes als JTextArea, so dass man verschiedene Dinge in verschiedenen Farben anzeigen kann. Nun, das kann mit einem JTextPane oder einem JEditorPane gemacht werden.
Hier gebe ich Ihnen ein einfaches Beispiel, wie Sie JTextPane mit einer bestimmten Nachricht zum Drucken und Farbe dieser Nachricht zur Verfügung stellen.
Sie können die Farben für jeden Eingabetext ändern, so dass für jedes Wort unterschiedliche Farben angezeigt werden können.
// This is in javax.swing.JTextPane;
JTextPane tPane = new JTextPane();
/* Method to put text in this textPane with colour of your choice
* For this you need these classes.
* import javax.swing.text.AttributeSet;
* import javax.swing.text.SimpleAttributeSet;
* import javax.swing.text.StyleConstants;
* import javax.swing.text.StyleContext;
*/
protected static void appendToPane(String msg, Color c,String f)
{
StyleContext sc = StyleContext.getDefaultStyleContext();
AttributeSet aset = sc.addAttribute(SimpleAttributeSet.EMPTY, StyleConstants.Foreground, c);
aset = sc.addAttribute(aset, StyleConstants.FontFamily, f);
int len = tPane.getDocument().getLength();
tPane.setCaretPosition(len);
tPane.setCharacterAttributes(aset, false);
tPane.replaceSelection(msg);
}
So rufen Sie, wenn Sie so appendToPane("HI", Color.RED, "Lucida Console")
es HALLO mit bestimmten Schriftart in rot angezeigt werden soll. und wenn Sie rufen sagen appendToPane(" THERE", Color.BLACK, "TIMES NEW ROMAN")
dann wird in schwarzer Farbe an der gleichen Stelle neben Hi gedruckt werden.
Webbasierter Editor? – Upperstage