在JScrollPane(JTextArea)中增加内容时,滚动条自动滚至底部
http://hi.baidu.com/ofbase/blog/item/74f826e9ea7db23eb90e2d03.html在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....."); TimerTask task = new TimerTask(){ public void run(){ ta.append("Time: " + (System.currentTimeMillis() / 1000)); 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); }}
页:
[1]