Desafio - Me ajude a Compilar esse programa - Tenho Dúvida

5 respostas
macielpereira

[color=blue][/color]Galera Estou postando Um Código aqui que da um erro de NullPointerException - Se Alguém puder me ajudar a resolver esse problema - eu agradeço

Olha pessoal eu sou iniciante na área então pegue leve nas críticas aew. :D .

Aqui as classes:

import javax.swing.JOptionPane; 
public class CadastroCliente {
    String nomeCliente;
    String cpfCliente;
    String telefoneCliente;
    String enderecoCliente;

    void CadastrarCliente(){
        nomeCliente = JOptionPane.showInputDialog("Digite O Nome do Cliente");
        cpfCliente = JOptionPane.showInputDialog("Digite o CPF do " + nomeCliente + " :");
        telefoneCliente = JOptionPane.showInputDialog(" Digite o Telefone: ");
        enderecoCliente = JOptionPane.showInputDialog("Digite o endereço: ");
    }

}
import javax.swing.JOptionPane;
public class RelatorioDoProblema {
    String relatorioCliente;
    String relatorioTecnico;
    String tecnicoRelator;
    String precoConserto;

    void RelatoCliente(){
        relatorioCliente = JOptionPane.showInputDialog("Solicite ao Cliente" +
                " a descrição do Problema: ");
    }

    void RelatoTecnico(){
        tecnicoRelator = JOptionPane.showInputDialog("Digite o Nome do Resposável" +
                " Pela descrição da Vistoria: ");
        relatorioTecnico = JOptionPane.showInputDialog("Descreva a Descrição do" +
                " Problema: ");
    }

    public void Conserto(){
        JOptionPane.showMessageDialog(null, "O Seguinte Problema foi encontrado"
                + relatorioTecnico + " Pelo Técinco "
                + tecnicoRelator);
    }

    void precoConserto(){
       precoConserto = JOptionPane.showInputDialog(" Digite o Preço da Manutenção: ");
    }

}

[color=green][/color]E Agora Finalmente o main[color=green][/color]

import java.util.Scanner;
import javax.swing.JOptionPane;
public class Main {
    public static void main(String[] args) {
        int contadorPreco = 0;
        int contadorRelatoTecnico = 0;
        int contadorRelatoCliente = 0;
        int contadorCadastro = 0;
        int contadorConserto = 0;
        int decisao = 0;
        Scanner entrada = new Scanner (System.in);

        CadastroCliente[]  Cliente1 = new CadastroCliente[10];
        RelatorioDoProblema[] Relatorio1 = new RelatorioDoProblema[10];

        System.out.println("++Informe o Numero da opcao desejada++\n" +
                           "+ 1 = Cadastrar Cliente              +\n" +
                           "+ 2 = Consultar Relatorio do cliente +\n" +
                           "+ 3 = Consultar Relatorio Tecnico    +\n" +
                           "+ 4 = Relatório do Conserto          +\n" +
                           "+ 4 = Consultar preço                +\n" +
                           "++++++++++++++++++++++++++++++++++++++");
        decisao = entrada.nextInt();

        switch(decisao) {
            case 1:
             Cliente1[contadorCadastro].CadastrarCliente();
             contadorCadastro ++;
             break;

            case 2:
              Relatorio1[contadorRelatoCliente].RelatoCliente();
              contadorRelatoCliente ++;
              break;

            case 3:
              Relatorio1[contadorRelatoTecnico].RelatoTecnico();
              contadorRelatoTecnico ++;
              break;

            case 4:
               Relatorio1[contadorConserto].Conserto();
               contadorConserto ++;
               break;

            case 5:
               Relatorio1[contadorPreco].precoConserto();
               contadorPreco ++;
               break;
               
            default:
                JOptionPane.showMessageDialog(null, " Escolha Incorreta ");
                break;

        }
    }

}

5 Respostas

Poneis123

vc tem a mensagem de nullpointer ae?

S
vc tem que inicializar o conteúdo do seu array

tipo antes de

Cliente1[contadorCadastro].CadastrarCliente();

deve ser feito

Cliente1[contadorCadastro] = new CadastroCliente();

e lembre letra maiuscula inicial somente para nome de classes.

macielpereira

tenho a mensagem sim - é esse aqui:
Exception in thread “main” java.lang.NullPointerException
at citech.Main.main(Main.java:43)
Java Result: 1

macielpereira

Olha SilvaeSouza vc disse que eu tenho que inicializar o array - mas eu fiz olhe na linha 13 e 14 do main.
é isso que vc quis dizer ? , porque mesmo assim eu fiz o que vc sugeriu mas deu erro ainda mais complicado.

Hebertbc

O que ele disse era isso aqui

...
switch(decisao) {
            case 1:
			 Cliente1[contadorCadastro] = new CadastroCliente();
             Cliente1[contadorCadastro].CadastrarCliente();
             contadorCadastro ++;
             break;
...

Ali vc criou um array de tamanho 10 com todos nulos

Criado 14 de abril de 2010
Ultima resposta 14 de abr. de 2010
Respostas 5
Participantes 4