已经用JScrollPane包装
我使用了
JScrollBar bar=textarea.getVerticalScrollBar();
bar.setValue(bar.getMaximum());
但是最新添加进的几行还是放在屏幕之外
请问有什么解决办法,谢谢

解决方案 »

  1.   

    应该不会,帖简化代码上来看看,实在不行就设置JEditPane中光标出现的位置,这样滚动条就会自动滚动到这个位置。
    editPane.setCaretPosition(editPane.getText().length());
      

  2.   

    楼主的方法对于其它component是可以的,对于JEditPane不行,五斗米的方法对于Jeditpane最好。
      

  3.   

    ...
               private JTextPane textarea = new JTextPane();
    ...
    textareaWrapper=new JScrollPane(textarea);
    ...(插入部分的代码)
                      insert(...);
    JScrollBar bar=textareaWrapper.getVerticalScrollBar();
    bar.setValue(bar.getMaximum());
    ...insert方法
    public void insert(String str, AttributeSet attrSet) {
    Document doc = textPane.getDocument();
    try {
    doc.insertString(doc.getLength(), str, attrSet);
    } catch (BadLocationException e) {
    System.out.println("BadLocationException: " + e);
    }
    }
    大概就是这个样子,按照setCaret会报异常
      

  4.   

    String msg = "需要显示的消息";
    textArea.setCaretPosition(textArea.getText().length());
    textArea.append(msg);