Java: HTML в Swing, поле ссылки не работает
Всем привет
Я пытаюсь отформатировать HTML-контент в Swing. Форматирование, такое как цвет или текстовое оформление, работает нормально. Но когда дело доходит до границы ссылок, это не работает вообще.
Это весь синтаксис CSS, который я использую:
StyleSheet styleSheet = kit.getStyleSheet();
styleSheet.addRule("a {font : arial; text-decoration: none; color: #0174DF; margin-left: 50px}");
все, кроме margin-left
работает. Я проверил синтаксис в браузере, и он отлично работает там. Я также пытался использовать text-align: left
или же display: block
потому что я нашел некоторые статьи, указывающие на то, что запас ссылок не будет работать без.
Используется следующий HTML-код:
<html><head></head><body><div>
<a href="http://www.zhaw.ch" style="font-size: 50.24324324324324px">akamaitechnologies.com</a>
<a href="http://www.zhaw.ch" style="font-size: 17.37837837837838px">amazonaws.com</a>
<a href="http://www.zhaw.ch" style="font-size: 18.243243243243242px">cotendo.net</a>
<a href="http://www.zhaw.ch" style="font-size: 24.08108108108108px">facebook.com</a>
<a href="http://www.zhaw.ch" style="font-size: 17.594594594594597px">google.ch</a>
<a href="http://www.zhaw.ch" style="font-size: 55.0px">heise.de</a>
<a href="http://www.zhaw.ch" style="font-size: 16.08108108108108px">ip-plus.net</a>
<a href="http://www.zhaw.ch" style="font-size: 21.054054054054056px">ligatus.com</a>
</div></body></html>
HTML-код генерируется библиотекой и не может быть изменен.
Из моего понимания HTML/CSS добавить не возможно margin
Информация о стиле для встроенного объекта, такого как ссылка, потому что margin-top или margin-bottom невозможна. margin-left oder margin-right, однако, не должно быть проблемой.
Спасибо
редактировать: кстати, я использую HTMLEditorKit.
2 ответа
Это моя последняя попытка, прежде чем я сдаюсь или схожу с ума (или оба).
TestHtmlIndent.java
import javax.swing.*;
class TestHtmlIndent {
public static void main(String[] args) {
String raw =
"<html><head></head><body><div>" +
"<a href=\"http://a.b\" style=\"font-size: 20px\">akamaitechnologies.com</a>" +
"<a href=\"http://a.b\" style=\"font-size: 17px\">amazonaws.com</a>" +
"<a href=\"http://a.b\" style=\"font-size: 18px\">cotendo.net</a>" +
"<a href=\"http://a.b\" style=\"font-size: 24px\">facebook.com</a>" +
"<a href=\"http://a.b\" style=\"font-size: 17px\">google.ch</a>" +
"<a href=\"http://a.b\" style=\"font-size: 25px\">heise.de</a>" +
"<a href=\"http://a.b\" style=\"font-size: 16px\">ip-plus.net</a>" +
"<a href=\"http://a.b\" style=\"font-size: 21px\">ligatus.com</a>" +
"</div></body></html>";
String style =
"<style type='text/css'>" +
"body {width: 600px;}" +
".cloudLink {text-decoration: none; color: #0174DF; " +
"font-family: helvetica, arial, sans-serif;}" +
"</style>";
raw = raw.replace("<head></head>", "<head>" + style + "</head>");
String space4 = "  ";
String space20 = space4 + space4 + space4 + space4 + space4;
final String processed1 = raw.replace(
"<a ", space20 + "<a class='cloudLink' ");
Runnable r = new Runnable() {
public void run() {
JOptionPane.showMessageDialog(null, processed1);
}
};
SwingUtilities.invokeLater(r);
}
}
Скриншот
Он должен работать. Вы можете добавить левый и правый поля для встроенных элементов (не так, верхний и нижний поля) Может быть, ваш styleSheet.addRule
потерпит неудачу?
Что такое сгенерированный HTML-код? Он попробовал код ниже, и он работает. Возможно, маржа переопределяется в какой-то таблице стилей. Вы проверяли с помощью firebug?
<html>
<head>
<style>a {font : arial; text-decoration: none; color: #0174DF; margin-left: 50px}</style>
</head>
<body>
<div>
<a href="http://www.zhaw.ch" style="font-size: 50.24324324324324px">akamaitechnologies.com</a>
<a href="http://www.zhaw.ch" style="font-size: 17.37837837837838px">amazonaws.com</a>
<a href="http://www.zhaw.ch" style="font-size: 18.243243243243242px">cotendo.net</a>
<a href="http://www.zhaw.ch" style="font-size: 24.08108108108108px">facebook.com</a>
<a href="http://www.zhaw.ch" style="font-size: 17.594594594594597px">google.ch</a>
<a href="http://www.zhaw.ch" style="font-size: 55.0px">heise.de</a>
<a href="http://www.zhaw.ch" style="font-size: 16.08108108108108px">ip-plus.net</a>
<a href="http://www.zhaw.ch" style="font-size: 21.054054054054056px">ligatus.com</a>
</div>
</body>