Как убрать границу вокруг изображения внутри тега ссылки в JTextPane Swing? - PullRequest
0 голосов
/ 20 марта 2019

При использовании следующего 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>

Вы получите следующий результат:

Border around image demo

Я добавил одно правило CSS, чтобы сделать цвет ссылки красным:

StyleSheet css = htmlEditorKit.getStyleSheet();
css.addRule("a { color: red; }");

Как вы можете видеть на скриншоте, это также превратило рамку изображения в красный, из чего я заключаю, что это<a> тег, который приводит к появлению границы.


Как избавиться от этой границы вокруг изображения внутри тега <a>?

Я пытался переопределить границу с другимправило, но оно не сработало:

css.addRule("img { border: 0; }");

1 Ответ

2 голосов
/ 20 марта 2019

Глядя на код HTMLEditorKit, вы видите, что тег <img> отображается с использованием класса 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>

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...