-1

こんにちは、JTextArea と I があり、JTextAreatxtResult.setWrapStyleWord program (true);からデータを取得するレポートもあります。

すべての自動 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 に答える