-1

您好,我有一个 JTextArea 和 I txtResult.setWrapStyleWord program (true);,还有一个从 JTextArea 获取数据的报告。

我希望每个自动 JTextArea 换行,然后添加一个新行\ n,所以在我的报告中具有相同的文本对齐。

请帮忙,谢谢:)

4

1 回答 1

2

您不应将“\n”插入文本区域。相反,当您想要保存文本时,您应该创建一个辅助方法来执行此操作。代码将类似于:

public String formatText(JTextArea textArea)
{
    StringBuilder text = new StringBuilder( textArea.getText() );
    int lineHeight = textArea.getFontMetrics( textArea.getFont() ).getHeight();
    Point view = new Point(textArea.getWidth(), textArea.getInsets().top);
    int length = textArea.getDocument().getLength();
    int endOfLine = textArea.viewToModel(view);
    int lines = 0;

    while (endOfLine < length)
    {
        int adjustedEndOfLine = endOfLine + lines;

        if (text.charAt(adjustedEndOfLine) == ' ')
        {
            text.insert(adjustedEndOfLine + 1, '\n');
            lines++;
        }

        view.y += lineHeight;
        endOfLine = textArea.viewToModel(view);
    }

    return text.toString();
}
于 2013-06-07T17:16:30.833 回答