Java - 如何在JTextPane中设置max-width?<table> </table>

时间:2014-08-15 09:22:29

标签: java html css swing jtextpane

我有一个JTextPane,其中包含html内容:

    Pane = new JTextPane();
    Pane.setEditable(false);
    Pane.setContentType("text/html");
    Pane.setEditorKit(kit);
    Pane.setText("<html><body><div id='content'></div></body></html>");
    doc = (HTMLDocument) Pane.getStyledDocument();
    content = doc.getElement("content");

我在运行时添加了我的html元素:

doc.insertBeforeEnd(content, "<table class = 'text'><tr><td>"+text+"</td></tr></table>"); // text is input from user

这是我使用的CSS:

    styleSheet = doc.getStyleSheet();
    styleSheet.addRule("body{background-color:#FFFFFF; margin 0%;}");
    styleSheet.addRule("#content {margin: 0% 10%; width : 80%; }"); // I set them to bring element that will add at the center of `jtextpane` but it did't work!
    styleSheet.addRule("table{ max-width: 60%;}"); // I set this to prevent table with long width, but it didn't work! 
    styleSheet.addRule(".text{background-color:#E2EAF3;margin : 2px;padding : 1px 2px; border-width: 1px;border-style: solid;border-color: #D5D3CD;text-align: right;}");

我也使用HTMLEditorKit定义here来包装我的文本。

如何设置CSS属性以达到我的目标。

  • 我想为宽度设置最大尺寸,因此如果文字尺寸较长则会包裹,如果它更短,则背景会固定为其内容。

注意:我用于创建HTMLEditorKit的代码适用于包装文本,问题是设置max-width。 (现在它在达到JTextPane宽度时包裹)

1 个答案:

答案 0 :(得分:0)

无法为表,行或单元格(Details on W3 here)定义max-width属性。您应该使用width代替。