如何设置JScrollpane并将其锁定到底部?

时间:2013-05-02 20:18:06

标签: java swing jscrollpane

如何将JScrollPane设置为JTextArea的底部?我试过了 DefaultCaret caret = (DefaultCaret)getCaret(); caret.setUpdatePolicy(DefaultCaret.ALWAYS_UPDATE);但它没有用,它没有自动失效。

这是我目前的代码

public class subTextAreaMessages extends JTextArea implements ActionListener{
private ArrayList al;
public subTextAreaMessages()
{
    setEditable(false);
    listTheMessages();
    Timer t = new Timer(500,this);
    t.start();
}

public void listTheMessages()
{
    ConnectMysql.getUsernamesTest(this);
}

@Override
public void actionPerformed(ActionEvent e) {

    try {
        System.out.print(getText(185,186));
    } catch (BadLocationException e1) {
        // TODO Auto-generated catch block
        e1.printStackTrace();
    }
}
 }




jspTextField = new JScrollPane(new subTextAreaMessages());

mainPanel2.add(jspTextField ,BorderLayout.CENTER);

2 个答案:

答案 0 :(得分:1)

根据您的具体要求,以下其中一项应该有所帮助

  1. Text Area Scrolling
  2. Smart Scrolling

答案 1 :(得分:0)

我遇到的问题是我的文本被类似内容定期完全替换,用户希望保持大文本内容中的可见位置。 我的解决方案是通过扩展DefaultBoundedRangeModel来实现我自己的BoundedRangeModel。然后我告诉ScrollPane的ScrollBars使用我的模型实例,一切顺利。