Tratamento de excecao

3 respostas
DirceuSobrinho

ae, tou precisando luz de como usar o tratamento de excecao!

assim criei umas classes e objetos Candidatos a Prefeito e vereador
e na hora de votar... tou utilizando JOptionPane.showInputDialog...

como criar um tratamento de excecao, para que na hora que votasse
num candidato a prefeito, so pudesse digitar inteiros com 2 digitos, nao aceitar cacter, e quando clicasse no cancelar nao desse pau, ou quando clicasse no cancela poderia apagar o q foi digitado

aqui ta um pedaço do codigo
public void computaVoto(int votoPrefeito, int votoVereador){
        
        for(int i=0;i<arrayPrefeito.length;i++){
            if(votoPrefeito==arrayPrefeito[i].getNumeroCandidato()){
                arrayPrefeito[i].setNumeroVotos(arrayPrefeito[i].getNumeroVotos()+1);
            }
        }
        
        for(int j=0;j<arrayVereador.length;j++){
            if(votoVereador==arrayVereador[j].getNumeroCandidato()){
                arrayVereador[j].setNumeroVotos(arrayVereador[j].getNumeroVotos()+1);
            }
        }
                        
    }
    
    public static void main(String[] args) {
    
   
    int votoPrefeito,votoVereador;
    Eleicao Eleicao2004 = new Eleicao();
    
    while(true){
        
    votoPrefeito = Integer.parseInt(JOptionPane.showInputDialog(null,"Digite o voto para Prefeito"));
    votoVereador = Integer.parseInt(JOptionPane.showInputDialog(null,"Digite o voto para Vereador"));
        
        if(votoPrefeito==99 && votoVereador==99999)
            break;
        else
            Eleicao2004.computaVoto(votoPrefeito,votoVereador);
            JOptionPane.showMessageDialog(null,"FIM");
    }
    
    System.exit(0);
    
    }

flw ae
Dirceu

3 Respostas

Z

não manjo mto, mas uma mascara não resolveria?

R

Olá Amigo!!

Eu implementaria da seguinte forma.

Pegaria o voto como uma String e faria o seguinte método:

public int validaVoto(String votoString,boolean prefeito) throws ExcecaoCaracter,ExcecaoTamanho
{
          int  votoInt;
          int  qtdNumeros;

           if (prefeito)
           {
                 qtdNumeros=2;
           }
           else
           {
                 qtdNumeros=5;
           }                 

           if(votoString.lenght==qtdNumeros)
           {
                  try
                  {
                         votoInt = Integer.parseInte(votoString);
                  }
                  catch(NumberFormatException  e)
                  {
                         Throw new ExcecaoCaracter(); 
                  }
          }
          else
          {
                  Throw new ExcecaoTamanho(); 
          }

          return(votoInt);
}

Lógico que você também vai ter que criar as classes com as exceções. Aprender a criar uma nova exceção é muito fácil, e caso vc não saiba, qqer busca em artigos e tutoriais ensina.

Espero que Ajude.

Abraços!

}

R

olá

no caso eu aconselharia vc fazer um JFrame certinho, e colocar nele o componente JFormattedTextField, vc pode definir uma mascara

ex:

JFormattedTextField txtPrefeito = new JFormattedTextField(new MaskFormatter("##"));

JFormattedTextField txtVereador = new JFormattedTextField(new MaskFormatter("#####"));

ps: o código pode não compilar, mude os nomes das classes para o os nomes corretos se não compilar

Criado 18 de fevereiro de 2005
Ultima resposta 19 de fev. de 2005
Respostas 3
Participantes 4