3

JTextAreaデータ ファイルから情報を読み取って、作成中の用語プロジェクトの about ファイルに処理しようとしています。問題はscanner.nextLine()、テキストに合わせてテキスト領域を拡大するときに、テキスト領域のサイズを同じに保ち、現在の行のスペースがなくなった場合に開始することです。

    if(event.getSource() == forward)
    {
        text.setText(s.nextLine());
    }

テキストエリアは次のように設定されています。

     text = new JTextArea(11, 30); 

基本的に私が知りたいのは、現在がいっぱいの場合にスペースを次の行に再配置するテキストエリアが提供する方法があるかどうかです(私が見ました)。テキスト領域で編集する方法がない場合は、おそらくデータ ファイルを編集するだけで済みます。

4

2 に答える 2

3

デフォルトでは false に設定されているJTextArea#setLineWrap(true)を使用できます。

テキスト領域の行折り返しポリシーを設定します。true に設定すると、行が長すぎて割り当てられた幅に収まらない場合、行が折り返されます。false に設定すると、行は常にアンラップされます。ポリシーが変更されると、PropertyChange イベント (「lineWrap」) が発生します。デフォルトでは、このプロパティは false です。

このメソッドも参照してくださいJTextArea#setWrapStyleWord(true)

SSCCE の例:

   public class JTextAreaTest {

    public static void main(String args[]){

        JFrame frame = new JFrame();
        JPanel panel = new JPanel();
        frame.add(panel);
        JTextArea textArea = new JTextArea(11,30);
        textArea.setLineWrap(true);
        textArea.setWrapStyleWord(true);
        textArea.setText("Hi how are you? Im testing this textarea and im seeing if it's wrapping words");
        textArea.append("SASASASASDASDASDASDASDASDADSASDASDASDASDAS");
        JScrollPane scrollPane = new JScrollPane(textArea);
        panel.add(scrollPane);

        frame.pack();
        frame.setVisible(true);
    }

}

textArea の例

于 2013-10-05T19:11:17.050 に答える