Quando o texto é maior que o JTextField

Qdo isso acontece no meu formulario, e eu trago os dados preenchidos ja do banco, fica visivel a parte final do texto… eu queria que a parte inicial do texto ficasse visivel…

como faço isso?

setScrollOffset()
não tenho certeza mas acho q é isso.

nha… funfou mas só se eu setar isso DEPOIS que o texto ja tá lá… =(
axei que tinha como deixar setado e qqer texto que entrasse ia obedecer isso…

vou ter que estender JTextField e alterar o evento de qdo o conteudo do campo é alterado, pra fazer esse alinhamento depois?

:roll:

cria um listener… ou então sai colando o método onde tiver acesso ao seu jTextfField

ixi… copy&pase nem rola senao todo carregamento de dados no form vai ser isso =/… vou ver aqui qual listener se encaixa…

pra quem quiser que seu TextField exiba sempre o inicio do texto ( e nao o final, default)… ta aqui um comportamento que fica bom:

Extenda JTextField… faça sua classe implementar PropertyChangeListener para alinhar o texto no inicio qdo mudar o valor ( mudanca de foco nao fica legal… negocio e capturar a mudanca de valor do conteudo)…

Tem um porém: qdo vc alterar o conteudo do campo num setText(), o evento nao é disparado… pra isso, sobrescrevi o setText() na minha classe, adicionando a instrução:

public void setText( String string ) {
	super.setText( string );
	[b]this.setCaretPosition( 0 );[/b]
}

segue abaixo o codigo da classe:

import java.awt.Color;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.FocusEvent;
import java.awt.event.FocusListener;
import java.beans.PropertyChangeEvent;
import java.beans.PropertyChangeListener;
import javax.swing.BorderFactory;
import javax.swing.JTextField;
import javax.swing.JFormattedTextField;
import javax.swing.border.Border;
import javax.swing.event.DocumentEvent;
import javax.swing.event.DocumentListener;
import javax.swing.text.AttributeSet;
import javax.swing.text.BadLocationException;
import javax.swing.text.Document;
import javax.swing.text.PlainDocument;

//  public class SpdField extends JFormattedTextField implements PropertyChangeListener, FocusListener {
public class SpdField extends JFormattedTextField implements PropertyChangeListener {
	  
//	private static Color defaultBackground = Color.WHITE;
//  private static Color focusedBackground = new Color ( 248, 248, 233 );
//  private static Border defaultBorder = BorderFactory.createLineBorder (Color.DARK_GRAY);
//  private static Border focusedBorder = BorderFactory.createLineBorder(Color.DARK_GRAY, 1);
	
	private static final long serialVersionUID = 1L;

	public SpdField() {
	    setFont(Fonte.getFontPadrao());
	    addPropertyChangeListener( this );
//	    addFocusListener( this );
	 }
	 
    public SpdField(int cols) {
        setFont(Fonte.getFontPadrao());
        addPropertyChangeListener( this );
//      addFocusListener( this );
    }
    
//    public void focusGained(FocusEvent e) {
//        defaultBackground = getBackground();
//        defaultBorder = getBorder();
//        setBackground (focusedBackground);
//        setBorder(focusedBorder);
//    }
//
//    public void focusLost(FocusEvent e) {
//        setBackground (defaultBackground);
//        setBorder(defaultBorder);
//    }

    public void setText( String string ) {
    	super.setText( string );
    	this.setCaretPosition( 0 );
    }
    
    protected Document createDefaultModel() {
        return new UpperCaseDocument();
    }

    static class UpperCaseDocument extends PlainDocument {

        public void insertString(int offs, String str, AttributeSet a) 
            throws BadLocationException {

            if (str == null) {
                return;
            }
            char[] upper = str.toCharArray();
            for (int i = 0; i < upper.length; i++) {
                upper[i] = Character.toUpperCase(upper[i]);
            }
            super.insertString(offs, new String(upper), a);
        }
    }

	public void propertyChange(PropertyChangeEvent e) {
		
		if ( e.getPropertyName().equalsIgnoreCase("value")) {
		
			setScrollOffset( 0 );
		
		}
		
	}

	

    
    
}