Java: HTML в Swing, поле ссылки не работает - PullRequest
2 голосов
/ 27 апреля 2011

Привет
Я пытаюсь отформатировать 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, однако, не должно быть проблемой.

1020 * ТНХ *

edit: кстати, я использую HTMLEditorKit.

Ответы [ 2 ]

5 голосов
/ 27 апреля 2011

Это моя последняя попытка, прежде чем я сдамся или сойду (или оба).

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 = "&nbsp;&nbsp;&nbsp;&nbsp";
        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);
    }
}

Скриншот

enter image description here

0 голосов
/ 27 апреля 2011

должно работать.Вы можете добавить левое и правое поля для встроенных элементов (не так для верхнего и нижнего полей). Может быть, ваш 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>

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