4

そのためJTextArea、ユーザー入力用の があり、ボタンをクリックするとテキスト ファイルに書き込まれます。両方がsetLineWrapあり、 にsetWrapStyleWord設定されtrueていJTextAreaます。

テキスト ボックスに表示される正確な方法でテキスト ファイルに書き込みたいと思います。

replace("\n", System.getProperty("line.separator"))機能する内容をString保持することを試みましたがJTextArea、ユーザーが入力を入力するときに実際にリターンキーを押した場合にのみ、ユーザーが入力を続けて行末に到達した場合にのみ、その下の行は機能しreplaceません。

また、 を使用してみStringBufferました。行に収まる文字数を計算し、各行の最後に新しい行を実行したので、最初の行では位置、2 行目、3行目などfor loop insertingに追加します。 . しかし、一部の文字は他の文字よりも小さいため、すべての状況で機能するとは限らないことにすぐに気付きました。90180270jp

私がやりたいのは、行末を計算する方法を見つけてinsert、新しい行の場所を知ることですが、他の提案も受け付けています。ありがとう。私のコードの一部を確認するのに役立つと思われる場合は、質問してください。

更新 これを行うためのコードを実装する代わりに、私はこのプログラムを使用する唯一の人の 1 人になる人と話をしました。彼は通常のメモ帳形式で問題ありませんでした。メモ帳形式の設定により、行全体を読むためにサイドスクロールを使用する必要がなくなります。ご入力いただきありがとうございます

4

2 に答える 2

5

使用Utilitiesクラス

public static final int getRowStart(JTextComponent c, int offs)
public static final int getRowEnd(JTextComponent c, int offs)

オフセットを渡し、行の開始と終了のオフセットを取得します

于 2011-10-04T13:13:12.530 に答える
1

フォントメトリックを使用して単語の長さを計算し、テキストエリアが既に行っていることを行う以外に、方法がわかりません。

しかし、これの背後にある目的は何ですか?

于 2011-10-04T13:03:30.517 に答える