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.