2016-03-11 7 views
0

Как я могу показать HTML-документ, как этотКак я могу показать HTML-документ (выравнивание символов) в компоненте Java Swing?

<html> 
<body> 
<span style="float: left;">left 1</span> 
<span style="float: right;">right 1</span><br> 
<span style="float: left;">left 2</span> 
<span style="float: right;">right 2</span> 
</body> 
</html> 

с помощью кого-то свинг элемент?

В браузере это выглядит точно так же, как мне нужно: enter image description here

Но в Java, он выглядит следующим образом: enter image description here

Я использую JTextPane:

jTextPane2.setText("<html>\n" + 
        "<body>\n" + 
        "<span style=\"float: left;\">left 1</span>\n" + 
        "<span style=\"float: right;\">right 1</span><br>\n" + 
        "<span style=\"float: left;\">left 2</span>\n" + 
        "<span style=\"float: right;\">right 2</span>\n" + 
        "</body>\n" + 
        "</html>"); 

Проблема что Мне нужно использовать атрибуты выравнивания символов. Не атрибуты выравнивания абзаца. Поскольку теги абзаца разделены пробелом между ними. Но этого не должно быть.

Я решил эту проблему, используя таблицу в HTML:

<html> 
<body> 
<table width='100%'> 
    <tr> 
    <td width='33%' align='left'>left 1</td> 
    <td width='33%' align='center'>center 1</td> 
    <td width='33%' align='right'>right 1</td> 
    </tr> 
    <tr> 
    <td width='33%' align='left'>left 2</td> 
    <td width='33%' align='center'>center 2</td> 
    <td width='33%' align='right'>right 2</td> 
    </tr> 
</table> 
</body> 
</html> 

Java:

jTextPane2.setText("<html>\n" + 
        "<body>\n" + 
        "<table width='100%'>\n" + 
        " <tr>\n" + 
        " <td width='33%' align='left'>left 1</td>\n" + 
        " <td width='33%' align='center'>center 1</td>\n" + 
        " <td width='33%' align='right'>right 1</td>\n" + 
        " </tr>\n" + 
        " <tr>\n" + 
        " <td width='33%' align='left'>left 2</td>\n" + 
        " <td width='33%' align='center'>center 2</td>\n" + 
        " <td width='33%' align='right'>right 2</td>\n" + 
        " </tr>\n" + 
        "</table>\n" + 
        "</body>\n" + 
        "</html>"); 

Но, может быть, есть другие, более точный способ. Пожалуйста, скажите мне.

+1

Swing поддерживает HTML 3.5 и небольшое подмножество CSS, поэтому было бы невозможно достичь с помощью '' – MadProgrammer

+0

@MadProgrammer * «Swing поддерживает HTML 3.5 ..» * 3.2, но да - действительно, * * действительно ** старый HTML. * ".. поэтому было бы невозможно достичь с помощью' '" * Я подозреваю, что если он работает в типичном браузере, он должен работать в компоненте Swing. AFAIR опции выравнивания были включены в API визуализации Swing HTML. OP: 1) Для лучшей помощи, скорее всего, опубликуйте [MCVE] или [Short, Self Contained, Correct Example] (http://www.sscce.org/). 2) Предоставьте ASCII-искусство или простой рисунок * предназначенного для просмотра содержимого текстовой панели. –

+0

@AndrewThompson Это может быть тот факт, что OP использует 'JTextPane' над' JEditorPane', и я, кажется, помню, что имел проблемы с span и div и прибегал к таблице, но это могло быть что-то вроде 'JLabel' , а не текстовый компонент: P – MadProgrammer

ответ

0

Я нашел другой способ решить эту проблему, используя SwingBox. Он может показывать выравнивание влево/вправо, но теперь у меня есть другая проблема: enter image description here показывает только одну строку вместо трех. :))