Tenho um JFormattetTextField formatado com um MaskFormatter, ele pode conter apenas numeros, até 3 caracteres no maximo, e ai esta o problema, quando a string ocupa 2 espaços eu n consigo converter seu valor numerico pois fica incluido um espaço, como faço pra tirar o espaço?
OBS: antes de converter o texto, eu passo ele para uma variavel String.
Poste seu código meu amigo, pois só assim podemos resolver! Abraço.
Esse é o código de pressionagem de um botão que aumenta em 1 o valor do texto do JFormattedTextField, é nele que eu modifico o texto.
@Override
public void mousePressed(MouseEvent e) {
output_n_rounds = NRCount.getText();
n_rounds = Integer.parseInt(output_n_rounds);
if(n_rounds < 100){
n_rounds++;
output_n_rounds = String.valueOf(n_rounds);
if(n_rounds == 100){
System.out.println("Passou por aki!!!");
nr_length = 3;
GameTextFormatterMasks.updateNRFormattedMask(NRCount, nr_length);
}
true_round = NRCount.getText();
NRCount.setText(output_n_rounds);
}
else if(n_rounds > 100){
true_round = "100";
NRCount.setText(true_round);
output_n_rounds = NRCount.getText();
n_rounds = Integer.parseInt(output_n_rounds);
}
}
E esse é codigo da máscara que to usando no JFormattedTextField que fica em outra classe
public static void setNRFormatterMask(JFormattedTextField nrJFTF){
try{
nrFormMask = new MaskFormatter("##");
nrFormMask.setValidCharacters("0123456789");
nrFormMask.install(nrJFTF);
}catch(Exception e){
System.out.println(e.getMessage());
}
}
public static void updateNRFormattedMask(JFormattedTextField nrJFTF, int length){
try{
if(length == 2){
nrFormMask.setMask("##");
}else if(length == 3){
nrFormMask.setMask("###");
}
nrFormMask.install(nrJFTF);
}catch(Exception e){
System.out.println(e.getMessage());
}
}
Vlw!!
Procure utilizar Regular Expretions para validar a quantidade de caracteres da sua mascara.
Veja o exemplo nesta aula
VIDEO
Espero ter ajudado!
1 curtida