1. java
  2. android
  3. c#
  4. .net
  5. javascript
  6. php
  7. jquery
  8. html
  9. sql

Como impedir entrada de texto com JOptionPane?

Tenho este exemplo de código com switch case utilizando JOptionPane, e gostaria de tratar a entrada incorreta de caracteres pelo usuário. Como faço? segue o código que fiz:

public static void main(String[] args) {
        // TODO Auto-generated method stub

        StringBuilder entrada = new StringBuilder();
        int opcao = 1;

        while (opcao != 0) {
            opcao = Integer.parseInt(JOptionPane.showInputDialog("Escolha a opção desejada! \n" +  
                       "1 - Adicionar um caracter à String.\n" +  
                       "2 - Adicionar um ?.\n" +  
                       "3 - Sair.\n"));
            switch (opcao) {

            case 1:
                entrada.append(JOptionPane.showInputDialog(null, "Digite um caracter de A-Z a-z: "));                
                break;

            case 2:
                entrada.append("?");
                JOptionPane.showMessageDialog(null, "Um caracter " + "'?'" + " foi adicionado ao fim da String.", "Importante!", 1);
                break;

            case 3:
                opcao = 0;
                break;

            default:
                JOptionPane.showMessageDialog(null, "Digite apenas as opções válidas!", "Pare!", 0);
                break;
            }

        }
       }
  • Deu algum erro?

    Krismorte   26 de nov de 2015
  • @Krismorte Acho que o que ele quer é impedir que o usuário adicione números ou mais do que um carácter por vez.

    Ryuuji Sensei   26 de nov de 2015
  • Uma dúvida Leonardo: A entrada de dados PRECISA ser feita por meio de JOptionPane? Acho que seria mais fácil você ter um componente customizado para isso.

    Ryuuji Sensei   26 de nov de 2015
  • A entrada não precisa ser por JOptionPane e o que quero é impedir que o usuário digite valores inválidos de números ou qualquer caracter. Ryuuji Sensei, você teria alguma sugestão de como utilizar algum componente customizado?

    LeonardoSevero   26 de nov de 2015
  • Não precisa criar nenhum componente customizado, não pra esse nível ai. Aparentemente o código é um exercício de lógica, e não precisa matar uma formiga com um canhão, ele simplesmente quer aprender a validar uma entrada invalida. Acredito que tu possa usar um TRY CATCH ou percorrer cada caracter da String digita e verificar, por meio do método character.isdigit se é um número ou qualquer outra coisa.

    Paulo Gustavo   26 de nov de 2015
  1. Você vai ver essas setas em qualquer página de pergunta. Com elas, você pode dizer se uma pergunta ou uma resposta foram relevantes ou não.
  2. Edite sua pergunta ou resposta caso queira alterar ou adicionar detalhes.
  3. Caso haja alguma dúvida sobre a pergunta, adicione um comentário. O espaço de respostas deve ser utilizado apenas para responder a pergunta.
  4. Se o autor da pergunta marcar uma resposta como solucionada, esta marca aparecerá.
  5. Clique aqui para mais detalhes sobre o funcionamento do GUJ!

1 resposta

Não é a resposta que estava procurando? Procure outras perguntas com as tags java input ou faça a sua própria pergunta.