dポイントプレゼントキャンペーン実施中!

JTextArea textArea = new JTextArea();
JScrollPane sp = new JScrollPane(textArea);

とりあえずスクロールできるのですが、textArea.append()で追加しても、いちいち手動で下の行まで移動します。追加したら自動で一番下を表示させるにはどうしたらいいですか?

A 回答 (2件)

こんばんは。


キャレット(入力位置)を最後尾に設定する方法と、スクロール区画をコードでスクロールする方法の2通りがありそうです。
コメントアウトしてある方がコードでスクロールする方法です。
- - - - - - - - - -
import java.awt.*;
import javax.swing.*;
public class Test extends JFrame {
public static void main(String[] args) { new Test(); }
public Test() {
super("TEST");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setSize(400, 300);
JTextArea ta = new JTextArea();
JScrollPane sp = new JScrollPane(ta);
getContentPane().add(sp);
for(int i = 0; i < 100; i++) {
ta.append("This is a TEST " + i + "\n");
}

//sp.getViewport().scrollRectToVisible(new Rectangle(0, Integer.MAX_VALUE - 1, 1, 1));
ta.setCaretPosition(ta.getDocument().getLength());

setVisible(true);
}
}

参考URL:http://java.sun.com/j2se/1.4/ja/docs/ja/api/java …
    • good
    • 0
この回答へのお礼

キャレットの方はうまくいかなかったのでもう1つのほうでやったらうまくいきました。

ありがとうございました。

お礼日時:2006/02/12 23:39

こんにちは、


外しているかもしれませんが、
textArea.append("??????????"+"\n")
のように、\nマークで、改行していますか。

この回答への補足

その通りです。繰り返しになりますが、そのやり方でメッセージ自体はちゃんと追加されているのですが、ビュー?が下に行かないため、手動でスクロールしています。

補足日時:2006/02/12 17:05
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!