Итак, я работаю над «окном чата» на Java, созданным с помощью HTMLEditorKit. Общий подход заключается в том, что я сначала создаю таблицу стилей, используя StyleSheet.addRule(). Таблица стилей, которую я создаю:
body {color:#ff00ff; font-family:SansSerif; font-size:12pt;}
p {color:#ff00ff; font-family:SansSerif; font-size:12pt;}
.msg {color:#ff00ff; font-family:SansSerif; font-size:12pt;}
.csa {color:#ff0000; font-family:SansSerif; font-size:12pt;}
.usa {color:#0000ff; font-family:SansSerif; font-size:12pt;}
.icon {width:16px; height:16px; object-position:0 5px; }
Затем, когда у меня есть строка чата, которую я хочу применить, я помещаю ее в div и добавляю в JTextPane:
try {
kit.insertHTML(doc, doc.getLength(), "\n<div class="+style+">" + s + "</div>", 0, 0, null);
} catch (BadLocationException ble) {
ErrorDialog.bug(ble);
} catch (IOException ex) {
ErrorDialog.bug(ex);
}
conversation.update(conversation.getGraphics()); //Force update of graphics
Пока все работает нормально! Далее возникает проблема с возможностью добавления в текст небольших изображений.
Добавление самих изображений тоже проходит нормально, пока я придерживаюсь атрибутов html, например:
<img src="dice.png" width="16" height="16">
НО, как только я пытаюсь сделать ЛЮБУЮ из следующих двух вещей, он ИГНОРИРУЕТ все мои стили:
<img src="dice.png" class="icon">
<img src="dice.png" style="{width:16px; height:16px; object-position:0 5px; }">
Я пробовал всевозможные обходные пути, включая теги span, я пробовал стили id (например, #icon и id="icon"), отдельные элементы div и т. д. Никакой радости!
Это дополнение к некоторому устаревшему программному обеспечению, работающему под довольно старой версией Java (1.8), поэтому я всегда «ожидаю худшего», но, как я уже сказал, все другое Элементы стиля CSS (в том, что касается текста и макета) работают отлично. Ищу какие-либо подсказки по устранению неполадок, ИЛИ есть ли какие-то особые ограничения HTMLEditorKit с изображениями (но опять же, все мои изображения отлично работают, пока я придерживаюсь атрибутов html вместо CSS, и все же все мои CSS отлично работают с текстом). Большое спасибо за любую помощь.