2

我在使用 JEditorPane 时遇到问题。我想在同一行上进行左对齐和右对齐文本。

这是我的代码:

INFO_AREA = new JEditorPane();
    INFO_AREA.setBorder(BorderFactory.createCompoundBorder(BORDER, 
                BorderFactory.createEmptyBorder(10, 10, 10, 10)));
    HTMLEditorKit kit = new HTMLEditorKit();
    INFO_AREA.setEditorKit(kit);
    StyleSheet styleSheet = kit.getStyleSheet();
    styleSheet.addRule(".alignleft{color : rgb(0,128,25); font-weight: bold; float: left;}");
    styleSheet.addRule(".alignright{color : rgb(0,128,25); font-weight: bold; float: right;}");
    INFO_AREA.setText("<html>" +
            "<center><b><font size=6>Important Information</font></b></center>" 
            "<div id=textbox><p class='alignleft'>left</p><p class='alignright'>right</p></div>" +
            "</html>");
    INFO_AREA.setLocation(305, 10);
    INFO_AREA.setSize(275, 200);
    INFO_AREA.setEditable(false);
    PANE.add(INFO_AREA);

它不起作用,似乎 JEditorPane 不支持浮动。

所以也许有人知道如何在同一行上实现左对齐和右对齐文本?

4

1 回答 1

3

Swing 的 HTML 渲染器很旧。它支持 HTML 3.2 和 CSS 1.0,甚至不支持这些规范的所有功能。

查看CSS 类的文档,我们看到它列出了它支持的所有 CSS 属性。有一个受支持的列表,后面是一个以“以下已建模,但当前未呈现”开头的列表。在该列表中是 float 属性。

因此,Swing HTML 呈现当前不支持 float 属性。完全没有。

对于这个问题,有一个长期存在的开放错误,Java 错误 ID 4296022 。

于 2013-11-03T21:53:38.517 回答