Ajuda ... mascara

Pessoal,

boa tarde …

Estou desenvolvendo uma aplicação, para ser mais preciso, um cadastro de Carros, aonde tenho um campo PLACA, que é o jFormattedTextField. Fui nas propriedades dele, e na propriedade, FormatterFactory, em mascara - personalizada, coloquei assim: ###-####, meu programa roda normal, mas quando vou inserir algum dados no campo , como por exemplo, ABC-2007 (que é a placa do carro), ele não deixa inserir as letras, ou seja, só esta pega numero, 123-2007 .

O problema é o formato da mascara que esta errada.

Preciso fazer uma mascara, que aceite string, como falei no exemplo, ABC-1234, desta forma.

Obrigado.

Renato Soares

cara eu fiz um negocio aqui que tipo ele nao usa uma máscara, mas so aceita o valor digitado se for igual a tp
AAA-555, que é oq vc quer neh, vo te passa o codigo ai vc pode fazer uma funcao que pega o valor q o cara digito e joga pra um metodo que valida esse valor, ai vc so aceita o valor se esse metodo retorna true saca, vo te passa o codigo pra poder implementar o metodo, tomara que isso te sirva, é meio gambiarra mas funciona, hehe
ai esta:

public static void main(String[] args) {
		boolean placaOk = false;
		String placa = "";
		while (!placaOk) {
			placa = JOptionPane.showInputDialog(null, "informe a placa");
			try {

				String parte1 = placa.substring(0, 3);
				boolean passou = false;
				try {
					Integer.parseInt(parte1);
				} catch (Exception e) {
					passou = true;
				}
				if (passou) {
					String parte2 = (String) placa.substring(3, 4);
					Integer parte3 = Integer.parseInt(placa.substring(4, 7));

					if (parte1.length() == 3 && parte2.equals("-")
							&& parte3.toString().length() == 3) {
						placaOk = true;
					}
				}
			} catch (Exception e) {
				JOptionPane
						.showMessageDialog(null, "informe a placa novamente");
			}
		}
		System.out.println(placa);
	}

Se puder, dê uma olhada em expressões regulares. É mais simples e ainda lhe dá poder de fazer diversos padrões de aceitação.