Tratamento de erro caracter

Galera,
Como fica o código para tratar num textbox que o digitado não pode ser menor que 10 caracteres.
Obrigado.

Quando o campo perder o foco você faz uma verificação para ver se o tamanho dele é menor que dez, exibe um alerta e retorna o foco ao campo em questão!

Uma forma legal de vc tratar isso é usar um objeto InputVerifier.
Vc cria uma classe que extenda de InputVerifier. Como o método verify(JComponent) desta classe é abstrato, vc é obrigado a implementá-lo. Neste método é que vc vai fazer a sua validação: se o texto do JComponent passado para o método tiver menos de 10 caracteres, vc manda ele retornar false, caso contrário, vc faz ele retornar true.
Segundo um tutorial da Sun, não é aconselhavel fazer com que esse método realize ações, tipo alterar o valor de algum campo em uma tela, etc.
Caso vc queira fazer isso, vc pode sobrescrever o método shouldYeldFocus(JComponent). A implementação deste método, dada pela classe InputVerifier simplesmente retorna o valor de verify(JComponent). Vc pode sobrescrever o should… para, por exemplo, receber em uma variável booleana o valor de retorno do verify… e, caso ele seja false, enviar uma pop-up pro usuário com alguma mensagem explicativa.
A classe JTextField tem um método public void setInputVerifier(InputVerifier). Quando usamos este método para associar ao JTextField um InputVerifier, a caixa de texto, quando ela vai perder o foco, ela invoca o método shouldYeldFocus(JComponent) do [i]InputVerifier[i] que vc associou. Esta chamada é feita internamente, e o JTextField passa ele próprio como parâmetro pro método should…. Se este método retornar true, beleza, tudo normal, mas se retornar false, o JTextField cancela a mudança de foco.
Vou passar aqui um exemplo bem tosco, que só permite que sejam entrados no campo “Código” valores numéricos e com no mínimo 10 caracteres.

package customJTextField;

import java.awt.Container;

import javax.swing.InputVerifier;
import javax.swing.JComponent;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JTextField;

public class CustomJTextField extends JFrame {
	private JTextField
		TEXTO1,
		txtNome
	;
	
	public CustomJTextField() {
		instanciateComponents();
		configGUI();
	}

	private void instanciateComponents() {
		TEXTO1 = new JTextField();
		TEXTO1.setBounds(0, 21, 115, 20);
		TEXTO1.setInputVerifier(new MyVerifier());
		
		txtNome = new JTextField();
		txtNome.setBounds(0, 71, 115, 20);
	}

	private void configGUI() {
		Container c = getContentPane();
		c.setLayout(null);
		
		JLabel lblCodigo = new JLabel("Código");
		lblCodigo.setBounds(0, 0, 150, 20);
		c.add(lblCodigo);
		c.add(TEXTO1);
		
		JLabel lblNome = new JLabel("Nome");
		lblNome.setBounds(0, 50, 150, 20);
		c.add(lblNome);
		c.add(txtNome);
		
		setBounds((800-110)/2, (600-130)/2, 110, 130);
		setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
		
	}

	public static void main(String[] args) {
		(new CustomJTextField()).show();
	}
	
	private class MyVerifier extends InputVerifier {
		private boolean allowLostOfFocus = false;
		private StringBuffer errorCauses = null;

		/* 
		 * Método implementado de InputVerifier
		 */
		public boolean verify(JComponent input) {
			errorCauses = new StringBuffer("");
			
			if(!(input instanceof JTextField)) {
				errorCauses.append(
					"Um objeto MyVerifier só deve ser " +
					"associado a componentes do tipo JTextField"
				);
				return false;
			}
			
			JTextField txt = (JTextField)input;
			if(txt.getText().length() < 10) {
				errorCauses.append("- O código deve ter no mínimo 10 digitos.");
			}
			
			try {
				Long.parseLong(txt.getText());
			}catch(NumberFormatException e) {
				errorCauses.append(errorCauses.length() == 0 ? "- " : "\n- ");
				errorCauses.append("O código deve ter apenas numeros.");
			}
			
			return errorCauses.length() == 0;
		}

		/* 
		 * Método sobrescrito de InputVerifier
		 */
		public boolean shouldYieldFocus(JComponent input) {
			if(allowLostOfFocus)
				return true;
			if(verify(input))
				return true;
			
			/*
			 *  Trate aqui a entrada inválida da forma que lhe for mais 
			 * conveniente
			 */
			allowLostOfFocus = true;
			JOptionPane.showMessageDialog(
				input.getParent(),
				errorCauses,
				"Erro",
				JOptionPane.ERROR_MESSAGE);
			allowLostOfFocus = false;
			return false;
		}
		
		
	}

}

Qualquer dúvida sobre o código, pode perguntar, ok!

tiago a sua ídeia é boa, mas como faço isso.
o campo seria um alfanumérico.