Não estou conseguindo realizar a rolagem automática em um JTextPane,
usei a mesma implementação do JTextArea ( nessa funciona normal )
segue o codigo
	public void rolaTela(){
			try {
				
				txtpnl.scrollRectToVisible( txtpnl.modelToView(txtpnl.getDocument().getLength()) );
			} catch (BadLocationException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
	}
Esse codigo abaixo funciona normalmente, mas preciso utilizar html então mudei para JTextPane, conforme codigo anterior. 
        public void rolaTela(){
			try {
				
				textArea.scrollRectToVisible(textArea.modelToView(textArea.getDocument().getLength()));
			} catch (BadLocationException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
	}
O método que estou utilizando para atualizar o JTextPane é o seguinte
public void escreveNaTela(String msg) {
 /* txt é um atributo da classe que armazena o conteúdo do JTextPane, 
 * foi necessário para fazer a concatenação dos textos, o JTextPane não possui um .append()
 */  
		txt = txt + msg;
		txtpnl.setText(txt);
		rolaTela();
}
O que devo fazer para que seja feito a rolagem automática? quando executo o codigo utilizando o JTextPane gera uma exceçao de nullpointer
[color=red]java.lang.NullPointerException
at javax.swing.JComponent.scrollRectToVisible(Unknown Source)
at Chat.TelaCliente.rolaTela(TelaCliente.java:108 )[/color]
Agradeço a ajuda.
[]`s
         
        
          
        
           
           
           
         
         
            
            
          
       
      
        
        
          Tem que usar o depurador e ver o que está null aí.
Vc tem certeza que não chamou o método rolaTela() antes de criar o textarea?
         
        
        
           
           
           
         
         
            
            
          
       
      
        
        
          [quote=ViniGodoy]Tem que usar o depurador e ver o que está null aí.
Vc tem certeza que não chamou o método rolaTela() antes de criar o textarea?[/quote]
Tenho certeza q o textpane foi criado antes q o rolaTela(). Quando eu altero o tipo do obj de jtextpane para jtextarea o método funciona normal.
Achei uma solução mas está apresentando uma falha, a tela não rola sempre até o final. A maioria das vezes ela rola e exibe a ultima linha, mas tem vezes q rola para o meio e depois de escrever varias msgs volta a rolar ate o fim.
segue o novo codigo que estou utilizando
public void rolaTela() {
        Rectangle visibleRect = txtpnl.getVisibleRect();
        visibleRect.y = txtpnl.getHeight();
        txtpnl.scrollRectToVisible(visibleRect);
    }
Confesso q prefiro o codigo anterior que eu usava em um JtextArea, ele rolava perfeitamente ate o final, esse JTextPane está dando dor d cabeça.
E quanto ao nullpointer acho q é do método txtpnl.modelToView();
OBS: o txtpnl.getDocument().getLenght(); está normal… retornando o tamanho do Document
         
        
        
           
           
           
         
         
            
            
          
       
      
        
        
          ACHEI A SOLUÇÃO !!! em um forum gringo
Adicionei um AdjustmentListener no scrollpane e está perfeito agora 
[code]		scrollPane.getVerticalScrollBar().addAdjustmentListener(new AdjustmentListener() {
	    BoundedRangeModel brm = scrollPane.getVerticalScrollBar().getModel();
	    boolean wasAtBottom = true;
		@Override
		public void adjustmentValueChanged(AdjustmentEvent arg0) {
			// TODO Auto-generated method stub
			 if (!brm.getValueIsAdjusting()) {
		           if (wasAtBottom)
		              brm.setValue(brm.getMaximum());
		        } else
		           wasAtBottom = ((brm.getValue() + brm.getExtent()) == brm.getMaximum());
		     }
	});[/code]
Agradeço aos que tentaram me ajudar
