Olá Pessoal.
É o seguinte, fiz um programa(não terminado) que cadastra um funcionário e gera um relatorio, esta cadastrando normal, porém quando vou gerar o relatório de funcionário aparece um erro finalizando o programa.
O erro é o seguinte:
run:
Exception in thread “main” java.lang.NullPointerException
at Principal.geraRelatorio(Principal.java:31)
at Principal.main(Principal.java:57)
Java Result: 1
CONSTRUÍDO COM SUCESSO (tempo total: 41 segundos)
Se possível, peço a ajuda dos colegas para resolver esse problema
O código é o seguinte:
[code]import javax.swing.JOptionPane;
import java.text.NumberFormat;
public class Principal{
private Funcionario funcionario[];
private int cont;
public Principal(){
this.funcionario = new Funcionario[10];
this.cont = 0;
}
public void cadastraFuncionario(){
if (this.cont < this.funcionario.length){
int cod = Integer.parseInt(JOptionPane.showInputDialog("Código: "));
String nome = JOptionPane.showInputDialog("Nome: ");
String dataNasc = JOptionPane.showInputDialog("Data de Nascimento: ");
String cpf = JOptionPane.showInputDialog("C.P.F: ");
String email = JOptionPane.showInputDialog("Email: ");
String dataCont = JOptionPane.showInputDialog("Data de Contratação: ");
double salario = Double.parseDouble(JOptionPane.showInputDialog("Salário: "));
this.cont++;
}
}
public void geraRelatorio(){
String resultado = "";
NumberFormat format = NumberFormat.getCurrencyInstance();
format.setMaximumFractionDigits(2);
for (int i = 0; i < cont; i++){
resultado = resultado + "Nome:" + this.funcionario[i].getNome() + " - " + format.format(this.funcionario[i].getSalario()) + "\n";
}
if (cont > 0)
JOptionPane.showMessageDialog(null, resultado);
else
JOptionPane.showMessageDialog(null, "VETOR VAZIO!", "SISTEMA EMPRESA 1", JOptionPane.INFORMATION_MESSAGE);
}
public static void main(String[] args){
int op = 0;
Principal principal = new Principal();
do
{
op = Integer.parseInt(JOptionPane.showInputDialog("Escolha sua Opção:"
+ "\n\n1 - Cadastrar Cliente\n2 - Cadastrar Funcionário" +
"\n3 - Gerar Relatório Cliente\n4 - Gerar Relatório Funcionário" +
"\n10 - Sair do Sistema"));
switch(op)
{
case 2:
principal.cadastraFuncionario();
break;
case 4:
principal.geraRelatorio();
}
}
while(op != 10);
}
}
[/code]
Desde já agradeço!