Глядя на вашу проблему, кажется, что вы хотели несколько цветов внутри вашего JTextPane.
Вам просто нужно поместить этот метод в ваш код и предоставить необходимые аргументы.
public void appendToPane(String yourText, Color colour)
{
StyleContext sc = StyleContext.getDefaultStyleContext();
AttributeSet aset = sc.addAttribute(SimpleAttributeSet.EMPTY, StyleConstants.Foreground, colour);
aset = sc.addAttribute(aset, StyleConstants.FontFamily, "Lucida Console");
int len = tPane.getDocument().getLength();
tPane.setCaretPosition(len);
tPane.setCharacterAttributes(aset, false);
tPane.replaceSelection(yourText);
}
Приведенный выше метод использует следующий импорт:
- import javax.swing.text.AttributeSet;
- import javax.swing.text.SimpleAttributeSet;
- import javax.swing.text.StyleConstants;
- import javax.swing.text.StyleContext;
- import javax.swing.JTextPane;
А tPane - это объект JTextPane. Просто, если вы хотите, чтобы ваше имя отображалось синим цветом, вызовите метод как appendToPane («ваше имя», Color.BLUE); и теперь, если вы хотите, чтобы ваш другой текст отображался красным, вызовите метод снова appendToPane ("New Text", Color.RED); надеясь, что это решит запрос, который вы запросили.
Привет