保存したファイルに入力したテキストを保存するプログラムを作成してJTextArea
います。問題は、を使用するsetWrapStyleWord()
と、テキストが新しい行に折り返されるときに改行が作成されないことです。したがって、ファイルに印刷されるテキストは1行になります。
改行を挿入できるように改行を検出する方法はありますか、または改行が発生する場所に改行を追加する方法はありますか?
使用するjavax.swing.text.Utilities
public static final int getRowStart(JTextComponent c, int offs)
public static final int getRowEnd(JTextComponent c, int offs)
JTextArea
あなたと前の行のオフセットを渡します
このコンテキスト依存。つまり、JTextArea
BrianRoachがすでに述べたように、のサイズに応じて、単語の区切りが変わります。
ただし、本当に決心している場合は、を使用してそれを理解できる可能性がありますLineBreakMeasurer
。
この例をチェックしてください
単語ではなく文字でラップする場合は、次のことができます。
でモノスペース フォントを使用している場合は、後で文字列を処理して、すべての文字数の後JTextArea
に を追加できます。ここで、 はテキスト領域の 1 行を埋める文字数です。\n
x
x
このアイデアをワードラップに適用するには、文字列をループするだけで、この回答へのコメントで示唆されているように、空白で発生するように改行を追加します。