У меня проблема с частью проекта, над которым я работаю.Я хочу отображать некоторые смайлики, используя Java Swing, однако он не позволяет мне отображать последовательные идентичные стили:
Это прекрасно работает: Smile Sad Grin
Это не работает: Smile SmileSmile
Я пользуюсь Styled Document и у меня мало опыта с этим.Код выглядит следующим образом:
public static void addStylesToDocument(StyledDocument doc) {
//Initialize some styles.
ImageIcon laugh = new ImageIcon("laugh.gif");
ImageIcon sad = new ImageIcon("sad.gif");
ImageIcon tongue = new ImageIcon("tongue.gif");
ImageIcon smile = new ImageIcon("smile.gif");
ImageIcon cry = new ImageIcon("cry.gif");
Style def = StyleContext.getDefaultStyleContext().getStyle(StyleContext.DEFAULT_STYLE);
Style regular = doc.addStyle("regular", def);
StyleConstants.setFontFamily(def, "SansSerif");
Style s = doc.addStyle("laugh", def);
StyleConstants.setIcon(s, laugh);
Style sads = doc.addStyle("sad", regular);
StyleConstants.setIcon(sads,sad);
s = doc.addStyle("tongue", regular);
StyleConstants.setIcon(s,tongue);
s = doc.addStyle("smile", regular);
StyleConstants.setIcon(s,smile);
s = doc.addStyle("cry", regular);
StyleConstants.setIcon(s,cry);
}
^ добавление стилей в мой документ
for (i=0;i<typeOfText.size();i++){
System.out.println(parsedText.get(i) + " " + typeOfText.get(i) + " " + i + " " + doc.getLength());
doc.insertString(doc.getLength(),parsedText.get(i),doc.getStyle(typeOfText.get(i)));
}
^ применение стилей к анализируемому тексту.
Итак, мой вопрос:обладает ли стиль документа определенным свойством, чтобы при наличии одних и тех же стилей он не отображался правильно?
РЕДАКТИРОВАТЬ: Каждый текст разбивается с помощью String Tokenizer, я получаючтобы правильно разобрать и применить соответствующий стиль.