Ir ao conteúdo
  • Cadastre-se

Problema com a instanciação da Matriz


dug

Posts recomendados

import javax.swing.JOptionPane;

public class FluxoDeCaixa

{

public static void main(String args[])

{

menu();

entradas();

saidas();

}

public static void menu()

{

int opcao = 0;

do {

opcao = Integer.parseInt(

JOptionPane.showInputDialog("Digite o número o da opcão desejada."+

"\n\n1. Entradas"+

"\n2. Saidas"+

"\n\n 9. sair"));

switch( opcao )

{

case 1: entradas();

break;

case 2: saidas();

break;

default: System.exit(0);

}

} while( opcao != 9 );

}

public static void entradas()

{

Consolidado consolidado = new Consolidado();

consolidado.instanciaRealizadoEntrada();

consolidado.instanciaPrevistoEntrada();

int opcao = 0;

do {

opcao = Integer.parseInt(

JOptionPane.showInputDialog("Digite o número o da opcão desejada."+

"\n\n1. Entrada de Saldo inicial de caixa"+

"\n2. Retorna Saldo inicial de caixa" +

"\n3. Entrada de Dinheiro realizado no dia"+

"\n4. Retorna o total de entrada de Dinheiro realizado no dia"+

"\n5. Entrada de Cheque realizado no dia"+

"\n6. Retorna o total de entrada de Cheque realizado no dia"+

"\n7. Entrada de Duplicatas a receber realizado no dia"+

"\n8. Retorna o total de entrada de Duplicatas a receber realizado no dia"+

"\n9. Entrada de Cartão de crédito realizado no dia"+

"\n10. Retorna o total de entrada de Cartão de crédito realizado no dia"+

"\n11. Entrada de Outros recebimentos realizado no dia"+

"\n12. Retorna o total de entrada de Outros recebimentos realizado no dia"+

"\n13. Entrada de Dinheiro previsto no dia"+

"\n14. Retorna o total de entrada de Dinheiro previsto no dia"+

"\n15. Entrada de Cheque previsto no dia"+

"\n16. Retorna o total de entrada de Cheque previsto no dia"+

"\n17. Entrada de Duplicatas a receber previsto no dia"+

"\n18. Retorna o total de entrada de Duplicatas a receber previsto no dia"+

"\n19. Entrada de Cartão de crédito previsto no dia"+

"\n20. Retorna o total de entrada de Cartão de crédito previsto no dia"+

"\n21. Entrada de Outros recebimentos previsto no dia"+

"\n22. Retorna o total de entrada de Outros recebimentos previsto no dia"+

"\n23. Retorna o Total de Entradas realizado no dia"+

"\n24. Retorna o total de Entradas previsto no dia"+

"\n25. Retorna o Total de Entradas realizado no mes"+

"\n26. Retorna o Total de Entradas previsto no mes"+

"\n27. Voltar"+

"\n\n 9. sair"));

switch( opcao )

{

case 1: double valorSaldo = Double.parseDouble(JOptionPane.showInputDialog(

"Digite o Saldo inicial do caixa"));

consolidado.entradaSaldoInicialCaixa(valorSaldo);

break;

case 2: JOptionPane.showMessageDialog(null, consolidado.retornaSaldoInicialCaixa());

break;

case 3:

int dia;

double valorDiaR;

do{

dia = Integer.parseInt(JOptionPane.showInputDialog(

"Digite o dia de 1 ate 20"));

}while(dia<1 || dia >20);

do{

valorDiaR = Double.parseDouble(JOptionPane.showInputDialog("Digite o valor"));

}while(valorDiaR < 0);

consolidado.entradaDinheiroRealizado(dia, valorDiaR);

break;

case 4: int retornaDia = Integer.parseInt(JOptionPane.showInputDialog(

"Digite o dia que deseja retornar o valor"));

JOptionPane.showMessageDialog(null, consolidado.retornaDinheiroRealizado(retornaDia));

break;

case 5: int dia1 = Integer.parseInt(JOptionPane.showInputDialog(

"Digite o 1º dia"));

int dia2 = Integer.parseInt(JOptionPane.showInputDialog(

"Digite o 2º dia"));

JOptionPane.showMessageDialog(null, consolidado.consultaLancamentoDinheiro(dia1, dia2));

break;

case 6: JOptionPane.showMessageDialog(null, consolidado.gastoMedio());

break;

case 7: JOptionPane.showMessageDialog(null, consolidado.gastoMedio());

break;

case 27: menu();

break;

default: System.exit(0);

}

} while( opcao != 9 );

}

public static void saidas()

{

Consolidado consolidado = new Consolidado();

consolidado.instanciaRealizadoSaida();

consolidado.instanciaPrevistoSaida();

int opcao2 = 0;

do {

opcao2 = Integer.parseInt(

JOptionPane.showInputDialog("Digite o número o da opcão desejada."+

"\n\n1. Entrada de Saldo inicial de caixa"+

"\n2. Retorna Saldo inicial de caixa" +

"\n3. Entrada de Dinheiro realizado no dia"+

"\n4. Retorna o total de entrada de Dinheiro realizado no dia"+

"\n5. Entrada de Cheque realizado no dia"+

"\n6. Retorna o total de entrada de Cheque realizado no dia"+

"\n\n 9. sair"));

switch( opcao2 )

{

case 1: JOptionPane.showMessageDialog(null, consolidado.gastoMedio());

break;

default: System.exit(0);

}

} while( opcao2 != 3 );

}

}

Estou Fazendo menus com switchs, porém toda vez que chamo outro menu é feita novamente a instanciação da matriz e perco o que possuo la dentro, gostaria da ajuda de vocês, obrigado.

Link para o comentário
Compartilhar em outros sites

Ta meio difícil achar o erro ja que você nao postou a classe consolidado e ficou faltando um monte de metodo pra poder compilar e testar

poste a classe e coloque dentro das tags code e /code

mas tentando usar minha bola de cristal aqui, talvez o problema seja instanciar dois objetos consolidado diferentes em nos metodos entrada e saida


public static void entradas()
{
Consolidado consolidado = new Consolidado();
.
.
.
.
...
public static void saidas()
{
Consolidado consolidado = new Consolidado();
...

não sei se é a intenção, mas do jeito que esta, um objeto não ira ter o mesmo valor do outro, logo pode dar esse efeito de "perder" o que tem na matriz, ja que os dois viraram variaveis locais que sao destruidas ( ou perde a referencia) cada vez que você sai de um desses metodos, a nao ser que você esteja criando uma lista dentro da classe Consolidado e mantendo eles salvos por la a cada nova instancia

se você não quer esse efeito, de Consolidado consolidado = new Consolidado();, apenas uma vez e torne consolidade um atributo do tipo Consolidade dentro de Fluxo de Caixa, e só cria um construtor pra fluxo de caixa que crie uma nova instancia a cada execução, ae você usara a mesma instancia em todos metodos, e todos enxergaram os mesmos valores e talvez sua matriz. Provavelmente você também ira precisar dae dar FluxodeCaixa variavel=new FluxoDeCaixa() dentro do seu main, pra nao ter que tornar os metodos static

talvez algo assim:


package clubedohardware;

import javax.swing.JOptionPane;

public class FluxoDeCaixa{

private Consolidado consolidado;

public FluxoDeCaixa(){
consolidado=new Consolidado();
}

public static void main(String args[]){
FluxoDeCaixa f1=new FluxoDeCaixa();
f1.menu();
f1.entradas();
f1.saidas();
}

public void menu(){
int opcao = 0;

do {
opcao = Integer.parseInt(
JOptionPane.showInputDialog("Digite o número o da opcão desejada."+
"\n\n1. Entradas"+
"\n2. Saidas"+

"\n\n 9. sair"));
switch( opcao )
{
case 1: entradas();
break;
case 2: saidas();
break;
default: System.exit(0);
}

} while( opcao != 9 );
}

public void entradas(){
consolidado.instanciaRealizadoEntrada();
consolidado.instanciaPrevistoEntrada();

int opcao = 0;

do {
opcao = Integer.parseInt(
JOptionPane.showInputDialog("Digite o número o da opcão desejada."+
"\n\n1. Entrada de Saldo inicial de caixa"+
"\n2. Retorna Saldo inicial de caixa" +
"\n3. Entrada de Dinheiro realizado no dia"+
"\n4. Retorna o total de entrada de Dinheiro realizado no dia"+
"\n5. Entrada de Cheque realizado no dia"+
"\n6. Retorna o total de entrada de Cheque realizado no dia"+
"\n7. Entrada de Duplicatas a receber realizado no dia"+
"\n8. Retorna o total de entrada de Duplicatas a receber realizado no dia"+
"\n9. Entrada de Cartão de crédito realizado no dia"+
"\n10. Retorna o total de entrada de Cartão de crédito realizado no dia"+
"\n11. Entrada de Outros recebimentos realizado no dia"+
"\n12. Retorna o total de entrada de Outros recebimentos realizado no dia"+
"\n13. Entrada de Dinheiro previsto no dia"+
"\n14. Retorna o total de entrada de Dinheiro previsto no dia"+
"\n15. Entrada de Cheque previsto no dia"+
"\n16. Retorna o total de entrada de Cheque previsto no dia"+
"\n17. Entrada de Duplicatas a receber previsto no dia"+
"\n18. Retorna o total de entrada de Duplicatas a receber previsto no dia"+
"\n19. Entrada de Cartão de crédito previsto no dia"+
"\n20. Retorna o total de entrada de Cartão de crédito previsto no dia"+
"\n21. Entrada de Outros recebimentos previsto no dia"+
"\n22. Retorna o total de entrada de Outros recebimentos previsto no dia"+
"\n23. Retorna o Total de Entradas realizado no dia"+
"\n24. Retorna o total de Entradas previsto no dia"+
"\n25. Retorna o Total de Entradas realizado no mes"+
"\n26. Retorna o Total de Entradas previsto no mes"+
"\n27. Voltar"+

"\n\n 9. sair"));

switch( opcao )
{
case 1: double valorSaldo = Double.parseDouble(JOptionPane.showInputDialog(
"Digite o Saldo inicial do caixa"));
consolidado.entradaSaldoInicialCaixa(valorSaldo);
break;
case 2: JOptionPane.showMessageDialog(null, consolidado.retornaSaldoInicialCaixa());
break;
case 3:
int dia;
double valorDiaR;
do{
dia = Integer.parseInt(JOptionPane.showInputDialog(
"Digite o dia de 1 ate 20"));
}while(dia<1 || dia >20);
do{
valorDiaR = Double.parseDouble(JOptionPane.showInputDialog("Di gite o valor"));
}while(valorDiaR < 0);
consolidado.entradaDinheiroRealizado(dia, valorDiaR);
break;
case 4: int retornaDia = Integer.parseInt(JOptionPane.showInputDialog(
"Digite o dia que deseja retornar o valor"));
JOptionPane.showMessageDialog(null, consolidado.retornaDinheiroRealizado(retornaDia));
break;
case 5: int dia1 = Integer.parseInt(JOptionPane.showInputDialog(
"Digite o 1º dia"));
int dia2 = Integer.parseInt(JOptionPane.showInputDialog(
"Digite o 2º dia"));
JOptionPane.showMessageDialog(null, consolidado.consultaLancamentoDinheiro(dia1, dia2));
break;
case 6: JOptionPane.showMessageDialog(null, consolidado.gastoMedio());
break;
case 7: JOptionPane.showMessageDialog(null, consolidado.gastoMedio());
break;
case 27: menu();
break;

default: System.exit(0);
}

} while( opcao != 9 );
}

public void saidas()
{
consolidado.instanciaRealizadoSaida();
consolidado.instanciaPrevistoSaida();
int opcao2 = 0;

do {
opcao2 = Integer.parseInt(
JOptionPane.showInputDialog("Digite o número o da opcão desejada."+
"\n\n1. Entrada de Saldo inicial de caixa"+
"\n2. Retorna Saldo inicial de caixa" +
"\n3. Entrada de Dinheiro realizado no dia"+
"\n4. Retorna o total de entrada de Dinheiro realizado no dia"+
"\n5. Entrada de Cheque realizado no dia"+
"\n6. Retorna o total de entrada de Cheque realizado no dia"+



"\n\n 9. sair"));

switch( opcao2 )
{
case 1: JOptionPane.showMessageDialog(null, consolidado.gastoMedio());
break;
default: System.exit(0);
}

} while( opcao2 != 3 );
}
}


Link para o comentário
Compartilhar em outros sites

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...