【发布时间】:2020-08-03 04:18:49
【问题描述】:
好的,我正在用 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 都可以正常处理文本)。非常感谢您的帮助。
【问题讨论】:
-
添加图像本身也很顺利, - 这意味着你的最后一个问题:stackoverflow.com/questions/61310850/…,得到了回答。所以你应该通过点击复选标记“接受”答案,这样人们就知道原来的问题已经解决了。
-
基本答案是只支持 HTML3.2 的一个子集。不知道你想做的是否支持。我建议您使用 JTextPane 并使用文本属性和段落属性来设置文本样式。您上一个问题的链接中提供了一个示例。
-
至于前面的问题——上面的答案实际上并没有帮助,或者说它很有帮助,但并没有引导我解决我的实际问题。我最终在其他地方找到了一个半答案(需要生成一个明确的 URL,例如使用 ClassLoader 等)并设法让它继续下去。我打算等几天,看看是否有人碰巧提供了该表格的答案,以便我可以接受,否则自己添加答案。不过,我很感谢你过来帮忙。
-
1) 应该将这样的 cmets 添加到原始问题中,以便人们知道您确实阅读了该建议,否则将来会有什么激励帮助。 2) 教程中的演示代码无需任何特殊代码或类加载器即可工作。 3)如果您使用不同的解决方案,请随时发布您自己的答案。 4) 发布 minimal reproducible example 并附上您的问题来证明问题,以便人们可以准确地看到您在做什么。
-
谢谢,我会注意到的。对于这个问题,我有强烈的动机让我专门在 HTMLEditorKit 中运行它,以利用 html。因此,我希望了解 HTMLEditorKit 限制的具体知识(例如,如果有人知道它不能也不应该将 CSS 用于图像),或者最好是能够发现或建议我“做错”的事情的人图像造型。我做了一堆搜索,找不到有这个问题的人,这让我觉得我可能“遗漏了一件事情”。
标签: java html css swing htmleditorkit