Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/338.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/75.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Java中使用HTMLEditorKit,<;img>;标记忽略了我的CSS样式(但是文本可以很好地接受样式)_Java_Html_Css_Swing_Htmleditorkit - Fatal编程技术网

在Java中使用HTMLEditorKit,<;img>;标记忽略了我的CSS样式(但是文本可以很好地接受样式)

在Java中使用HTMLEditorKit,<;img>;标记忽略了我的CSS样式(但是文本可以很好地接受样式),java,html,css,swing,htmleditorkit,Java,Html,Css,Swing,Htmleditorkit,好的,我正在用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:Sa

好的,我正在用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
试试{
insertHTML(doc,doc.getLength(),“\n”+s+”,0,0,null);
}捕获(BadLocationException-ble){
ErrorDialog.bug(ble);
}捕获(IOEX异常){
ErrorDialog.bug(ex);
}
conversation.update(conversation.getGraphics())//强制更新图形
到目前为止,一切正常!接下来,还有一个问题,就是希望能够在文本中添加一些图像

添加图像本身也很顺利,只要我坚持使用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都可以与文本配合使用,我的所有图像都可以很好地工作)。非常感谢您的帮助。

尝试将图像设置为
display:block
display:inline block
内联块
可能不受支持。如果图像是
display:inline
,则高度和宽度属性不会影响图像。还建议仅设置宽度以保持纵横比

.icon1{
宽度:100px;
高度:100px;
显示:块;
}
.icon2{
宽度:110px;
高度:110px;
显示:内联块;
}
.icon3{
宽度:120px;
显示:块;
}
/*例如,额外的样式*/
img{
保证金:4倍;
}


添加图像本身也很顺利,-那么这意味着你的最后一个问题:,得到了回答。所以你应该通过点击复选标记来“接受”答案,这样人们就知道原来的问题已经解决了。基本的答案是只支持HTML3.2的一个子集。不知道你想做的事情是否得到支持。我建议您使用JTextPane并使用文本属性和段落属性来设置文本样式。上一个问题的链接中提供了一个例子。至于前面的问题——上面的答案实际上没有帮助,或者更确切地说,它是有帮助的,但没有引导我找到解决实际问题的方法。我最终在其他地方找到了一个半答案(需要生成一个显式URL,例如使用ClassLoader之类的工具),并设法让它运行起来。我打算等几天,看看是否有人碰巧提供了该表格的答案,这样我就可以接受它,否则我自己就可以添加答案。我真的很感谢你过来帮忙。1)像这样的评论应该添加到原始问题中,让人们知道你确实读过这个建议,否则将来的激励帮助是什么。2) 教程中的演示代码在没有任何特殊代码或类加载器的情况下工作。3) 如果您使用不同的解决方案,请随时发布您自己的答案。4) 发布一个你的问题来演示问题,这样人们就可以确切地看到你在做什么。谢谢,我会注意到的。对于这个问题,我有强烈的动机让它在HTMLEditorKit中运行,特别是为了利用html。因此,我希望了解HTMLEditorKit的局限性(例如,如果有人知道它不能也不应该在图像中使用CSS),或者最好是有人能够发现或建议我“做错了”的事情,从而使图像样式化。我四处搜索,找不到有这个问题的人,这让我觉得我可能“遗漏了一件事”。唉,没有乐趣。尝试生成准确的样式,也尝试放置例如display:block;在img标记的style=“…”属性中。出于某种原因,我无法让窗口接受图像上的样式——它接受所有样式/类/等等,对于文本元素来说都很好。并且它接受像width=“16”这样的属性,对于图像来说很好。在纵横比上有一个很好的点——我的原始图像是正方形的,但我真的应该强制高度(这对我来说是一个重要的限制),让宽度自动调整。为了清楚起见,如果我把这些都放在浏览器中,它的工作效果就不足为奇了——它只是没有在这个Java HTMLEditorKit窗口中使用img样式,我也不明白为什么。它也只支持html 3.2,所以支持的css不是最好的。