Permitir que o usuário digite somente certos caracteres

0 respostas
swingjava
L

Olá, pessoas. Comecei com o java faz pouco tempo. Estou tentando fazer uma calculadora, porém estou tendo alguns problemas.

Tenho um JTextField, que será onde o usuário irá digitar a sua conta e gostaria que ele aceitasse somente os caracteres referentes às operações possíveis. Segue o código:

private void JTF_resultadoKeyReleased(java.awt.event.KeyEvent evt) {
// TODO add your handling code here:

String permitidos = "+-/*[telefone removido]";
   int indice = JTF_resultado.getText().length(), cont;
    
   for(cont=0;cont<permitidos,length() - 1;cont++){
     
        
        if(!Integer.toString(JTF_resultado.getText().charAt(indice)).equals(String.valueOf(permitidos.charAt(cont)))){
            JOptionPane.showMessageDialog(rootPane, "Caracter não permitido.");
            JTF_resultado.setText(JTF_resultado.getText().substring(0, indice - 1));
            
           }
    
                             
   }

O problema é que está aparecendo esse erro:

Exception in thread “AWT-EventQueue-0” java.lang.StringIndexOutOfBoundsException: String index out of range: 1

Tentei alterar o tamanho do loop, por pensar que ele estava tentando atingir um index que não existia na string, porém nao tive muito sucesso. Alguém pode me ajudar?

Criado 13 de outubro de 2017
Respostas 0
Participantes 1