是否可以在JTextPane StyledDocument中设置段落的长度?

时间:2014-08-08 07:37:55

标签: java swing jtextpane styleddocument

我将JTextPaneStyledDocument一起使用,是否可以设置其段落的长度? 我的目标是当JTextPane中插入的文本长度超过400px时,超过转到新行。

编辑:

我使用下面的方法为textPane设置样式

public Style getstyle(String message){
    Style style = context.addStyle("mystyle", null);
    StyleConstants.setForeground(style, Color.GRAY);
    StyleConstants.setBackground(style, new Color(162, 234, 167));
    SimpleAttributeSet mystyle = new SimpleAttributeSet();
    StyleConstants.setFontFamily(style, "SansSerif");
    document.setParagraphAttributes(document.getLength(), message.length(), mystyle, false);
    return style;
}

并使用以下内容将文本插入我的JTextPane:

try {
    document.insertString(document.getLength(), " "+message+"\n", getStyle(message));
} catch (BadLocationException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
}

我想设置段落的长度。

EDIT2:

我对不同类型的文字使用不同的风格。

EDIT3:

我使用滚动条将JTextPane添加到JPanel

context = new StyleContext();
document = new DefaultStyledDocument(context);
Pane = new JTextPane(document);
Pane.setEditable(false);

Panel.setLayout(new BoxLayout(Panel, BoxLayout.PAGE_AXIS));

JScrollPane scroll = new JScrollPane(Pane);
Panel.add(scroll , BorderLayout.CENTER);

1 个答案:

答案 0 :(得分:0)

试试这个:

public static void main(String[] args) throws Exception {
    final JTextPane pane = new JTextPane();
    pane.setContentType("text/html");
    final JFrame frm = new JFrame("Text editor");
    pane.setText("<html><table><tr><td width=\"400\"></td></tr></table</html>");
    frm.add(new JScrollPane(pane));
    frm.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
    frm.setSize(500, 500);
    frm.setVisible(true);
}

您的文字将在400px之后转到新行