在JScrollPane(JTextArea)的JTextArea中增加内容,如果通过界面按钮可以直接加入,并且达到如题之效果,但如果用程序加入内容的时候,则不行。
测试例程如下:
import java.awt.AWTEvent;
import java.awt.event.*;
import java.util.*;
import javax.swing.*;
public class ScrollBottom extends JFrame{
private JTextArea ta = new JTextArea();
private Timer timer = new Timer();
public ScrollBottom(){
super();
enableEvents(AWTEvent.WINDOW_EVENT_MASK);
init();
}
private void init(){
setBounds(0, 0, 300, 150);
final JScrollPane sp = new JScrollPane(ta);
getContentPane().add(sp, "Center");
ta.setText("Start.....\n");
TimerTask task = new TimerTask(){
public void run(){
ta.append("Time: " + (System.currentTimeMillis() / 1000) + "\n");
scrollAndSetCursor();
}
};
timer.schedule(task, 0, 1000);
}
/** 该方法用于实现滚动以及光标相关效果 */
public void scrollAndSetCursor(){
// ta.requestFocus();
ta.setSelectionStart(ta.getText().length());
}
protected void processWindowEvent(WindowEvent e){
super.processWindowEvent(e);
if(e.getID() == WindowEvent.WINDOW_CLOSING)
System.exit(0);
}
public static void main(String[] args){
ScrollBottom scroll = new ScrollBottom();
scroll.setVisible(true);
}
}
这似乎是最简单的方法吧,;)
出自:http://hi.baidu.com/ofbase/blog/item/74f826e9ea7db23eb90e2d03.html