qiuye 发表于 2013-2-7 20:51:24

在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]
查看完整版本: 在JScrollPane(JTextArea)中增加内容时,滚动条自动滚至底部