swing - 如何删除 Swing 的 JTextPane 中链接标记内的图像周围的边框?
问题描述
在内部使用以下 HTML 代码时JTextPane
:
Just an image: <img src="image.png" /><br/>
<a href="https://example.net">A link</a><br/>Image inside link:
<a href="https://example.net"><img src="image.png"></a>
您将得到以下结果:
我添加了一个 CSS 规则来使链接颜色变为红色:
StyleSheet css = htmlEditorKit.getStyleSheet();
css.addRule("a { color: red; }");
正如您在屏幕截图中看到的那样,这也将图像框架变成了红色,由此我得出结论,这<a>
是导致边框出现的标签。
如何摆脱<a>
标签内图像周围的边框?
我试过用另一个规则覆盖边界,但它没有用:
css.addRule("img { border: 0; }");
解决方案
查看 的代码HTMLEditorKit
,您可以看到该<img>
标签是使用 class 呈现的ImageView
,其中包含以下代码:
borderSize = (short)getIntAttr(HTML.Attribute.BORDER, isLink() ?
DEFAULT_BORDER : 0);
并且DEFAULT_BORDER
被硬编码为2
.
请注意,它会检查HTML属性。如果未指定 HTML 属性border
,则图像的边框2
位于链接内,否则为零。
一种解决方案是border
直接在<img>
标签内指定:
Image inside link:
<a href="https://example.net"><img src="image.png" border="0"></a>
推荐阅读
- python - 熊猫有条件,包含,替换
- java - 如何防止 MappedByteBuffer 在文件末尾写入空字符?
- python - 如何仅重塑数据框的一部分
- if-statement - 如果满足范围内的条件,公式将数据移动到第二页
- gcc - 如何使用 gcc 或其他编译器打包布尔运算?
- r - 如何在 R 中的包启动时记住一个函数
- sql - 将 DB 恢复到 pgAdmin4 不接受我的备份文件格式 (.sql)
- c++ - 我的 MDI 中的拖放被 CRichEditView 拦截并在 CRichEditView::GetDocument 中崩溃 - 我如何覆盖它?
- makefile - 在 Ubuntu 16.04 VBox 上安装 SUMO
- reactjs - React - 自定义样式 ag 网格标题