Série da semana: Primeiros passos no React

Veja mais

Usando hashmap

04/04/2016

2

Pessoal tudo bem ? eu criei esse codigo ele funciona só não esta salvando quando eu crio uma nova conta.

package br.com.guilhermezanatta;
import java.util.HashMap;
import javax.swing.JOptionPane;
import objetos.Conta;
public class Executar {

public static HashMap<Integer,Conta> contasCorrente = new HashMap<Integer,Conta>();
public static Object[] botoesEntrada = {"Nova Conta","Deposito","Saque","Saldo","Sair","Remover Conta"};
public static void main(String[] args) {
telaDeEntrada();
}
private static void telaDeEntrada() {
// Gera a tela de entrada
int botaoClicado = JOptionPane.showOptionDialog(null,
"Escolha a opção",
"Opções",
JOptionPane.OK_CANCEL_OPTION,
JOptionPane.INFORMATION_MESSAGE,
null,
botoesEntrada,
botoesEntrada[0]);
// Trata o item clicado
switch (botaoClicado) {
case 0:
novaConta();break;
case 1:
depositoConta();break;
case 2:
saqueConta();break;
case 3:
saldoConta();break;
case 4:
removerConta();break;
case 5:
transferirValores();break;
default:
System.exit(0);
}
}
private static void transferirValores() {
// Transferir valores entre contas
// Numero da conta corrente para Saque
int numeroDaContaSaque = Integer.parseInt(JOptionPane.showInputDialog("Inserir numero da conta para saque"));

if (contasCorrente.containsKey(numeroDaContaSaque)) { //Encontrou a conta
Conta contaSaque = (Conta) contasCorrente.get(numeroDaContaSaque);
double valorDoSaque = Double.parseDouble(JOptionPane.showInputDialog("Valor do Saque"));
// Verifica se conta possui saldo para efetuar a transferencia
if (valorDoSaque > contaSaque.getSaldo()) {
JOptionPane.showMessageDialog(null, "Conta com saldo insuficiente", "Transferencias",JOptionPane.ERROR_MESSAGE);
transferirValores(); // Volta para tela de entrada de dados de valores
} else {
int numeroDaContaDeposito = Integer.parseInt(JOptionPane.showInputDialog("Inserir numero da conta para deposito"));
if (contasCorrente.containsKey(numeroDaContaDeposito)) {// Encontrou a conta
Conta contaDeposito = (Conta) contasCorrente.get(numeroDaContaDeposito);
contaDeposito.setSaldo(valorDoSaque);
boolean resultado = contaSaque.setSaque(valorDoSaque);
// Atualiza hashmap
contasCorrente.put(numeroDaContaSaque,contaSaque);
contasCorrente.put(numeroDaContaDeposito, contaDeposito);
// Emite uma mensagem da transferencia
JOptionPane.showMessageDialog(null, "Tranferencia efetuada", "Transferencias",JOptionPane.INFORMATION_MESSAGE);
} else {
JOptionPane.showMessageDialog(null, "Conta deposito não encontrada", "Transferencias",JOptionPane.ERROR_MESSAGE);
}
}

telaDeEntrada();
} else { // Não encontrou a conta
JOptionPane.showMessageDialog(null, "Conta saque inexistente", "Transferencias",JOptionPane.ERROR_MESSAGE);
}

}


private static void removerConta() {
// Numero da conta corrente para Remoção
int numeroDaContaRemover = Integer.parseInt(JOptionPane.showInputDialog("Inserir numero da conta para saque"));
if (contasCorrente.containsKey(numeroDaContaRemover)) {// Encontrou a conta
contasCorrente.remove(numeroDaContaRemover);
JOptionPane.showMessageDialog(null, "Conta removida", "Exclusão de conta",JOptionPane.ERROR_MESSAGE);
} else {// Não encontrou
JOptionPane.showMessageDialog(null, "Conta não encontrada", "Exclusão de conta",JOptionPane.ERROR_MESSAGE);
}

}
private static void saldoConta() {
// Efetua o deposito em conta corrente se encontrar a conta corrente
int numeroDaContaSaldo = Integer.parseInt(JOptionPane.showInputDialog("Inserir numero da conta para deposito"));
// Faz a busca pelo numero da conta
if (contasCorrente.containsKey(numeroDaContaSaldo)) {
// Instancia um objeto conta
Conta contaSaldo = new Conta();
// Traz os valores do objeto Conta do HashMap conta corrente e transfere para contaDeposito
contaSaldo = (Conta) contasCorrente.get(numeroDaContaSaldo);

// Mensagem a ser impressa na tela
StringBuilder msg = mensagemSaldo(contaSaldo);
// Imprimir mensagem
JOptionPane.showMessageDialog(null, msg.toString(),"Saldo em conta",JOptionPane.INFORMATION_MESSAGE);
} else {
JOptionPane.showMessageDialog(null, "Conta não encontrada","Saldo em conta",JOptionPane.ERROR_MESSAGE);
}
// Volta a tela de entrada
telaDeEntrada();
}

private static StringBuilder mensagemSaldo(Conta contaSaldo) {
StringBuilder msg = new StringBuilder();
msg.append("Saldo da conta corrente");
msg.append("\n++++++++++++++++");
msg.append("\nCorrentista : ");
msg.append(contaSaldo.getNome());
msg.append("\nSaldo de R$ : ");
msg.append(contaSaldo.getSaldo());
return msg;
}
private static void saqueConta() {
// Efetua o saque em conta corrente se encontrar a conta corrente
int numeroDaContaSaque = Integer.parseInt(JOptionPane.showInputDialog("Inserir numero da conta para saque"));
// Faz a busca pelo numero da conta
if (contasCorrente.containsKey(numeroDaContaSaque)) {
// Instancia um objeto conta
Conta contaSaque = new Conta();
// Traz os valores do objeto Conta do HashMap conta corrente e transfere para contaDeposito
contaSaque = (Conta) contasCorrente.get(numeroDaContaSaque);
// Insere o valor do saque no objeto Conta contaDeposito
double valorSaque = Double.parseDouble(JOptionPane.showInputDialog("Digite o valor a ser sacado"));
// Se o saque retornar true
if (contaSaque.setSaque(valorSaque)) {
// Atualiza o HashMap contaCorrente
contasCorrente.put(numeroDaContaSaque,contaSaque);
// Mensagem a ser impressa na tela
StringBuilder msg = new StringBuilder();
msg.append("Saque Efetuado");
msg.append("\n++++++++++++++++");
msg.append("\nSaque de R$ : ");
msg.append(valorSaque);
msg.append("\nSaldo atual de R$ : ");
msg.append(contaSaque.getSaldo());
// Imprimir mensagem
JOptionPane.showMessageDialog(null, msg.toString(),"Saque em conta",JOptionPane.INFORMATION_MESSAGE);
} else {
// Imprimir mensagem de saldo indisponivel
JOptionPane.showMessageDialog(null, "Saldo indisponivel para saque","Saque",JOptionPane.ERROR_MESSAGE);
}

} else {
JOptionPane.showMessageDialog(null, "Conta não encontrada","Deposito em conta",JOptionPane.ERROR_MESSAGE);
}

// Volta para tela de entrada
telaDeEntrada();
}
private static void depositoConta() {
// Efetua o deposito em conta corrente se encontrar a conta corrente
int numeroDaContaDeposito = Integer.parseInt(JOptionPane.showInputDialog("Inserir numero da conta para deposito"));
// Faz a busca pelo numero da conta
if (contasCorrente.containsKey(numeroDaContaDeposito)) {
// Instancia um objeto conta
Conta contaDeposito = new Conta();
// Traz os valores do objeto Conta do HashMap conta corrente e transfere para contaDeposito
contaDeposito = (Conta) contasCorrente.get(numeroDaContaDeposito);
// Insere o valor do deposito no objeto Conta contaDeposito
double valorDeposito = Double.parseDouble(JOptionPane.showInputDialog("Digite o valor a ser depositado"));
contaDeposito.setSaldo(valorDeposito);
// Atualiza o HashMap contaCorrente
contasCorrente.put(numeroDaContaDeposito,contaDeposito);
// Mensagem a ser impressa na tela
StringBuilder msg = new StringBuilder();
msg.append("Deposito Efetuado");
msg.append("\n++++++++++++++++");
msg.append("\nDeposito de R$ : ");
msg.append(valorDeposito);
msg.append("\nSaldo de R$ : ");
msg.append(contaDeposito.getSaldo());
// Imprimir mensagem
JOptionPane.showMessageDialog(null, msg.toString(),"Deposito em conta",JOptionPane.INFORMATION_MESSAGE);
} else {
JOptionPane.showMessageDialog(null, "Conta não encontrada","Deposito em conta",JOptionPane.ERROR_MESSAGE);
}

// Volta para a tela de entrada
telaDeEntrada();
}
private static void novaConta() {
// Instancia a nova conta
Conta novaConta = new Conta();

// Atribui os valores aos atributos do objeto do tipo Conta
novaConta.setConta(Integer.parseInt(JOptionPane.showInputDialog("Numero da conta")));
novaConta.setNome(JOptionPane.showInputDialog("Nome do correntista"));
novaConta.setCpf(JOptionPane.showInputDialog("Numero do CPF"));

// Adiciona o numero da conta como chave e guarda o objeto Conta
contasCorrente.put(novaConta.getConta(), novaConta);

JOptionPane.showMessageDialog(null, novaConta.toString(),"Nova Conta",JOptionPane.INFORMATION_MESSAGE);

// Volta para a tela de entrada
telaDeEntrada();
}
}

-------------------------------------******************************_---------------------------------------------***************************************------------------------------------------------******************************-------

package objetos;
public class Conta {


public void setSaldo(double valorDoSaque) {
// TODO Auto-generated method stub

}
public double getSaldo() {
// TODO Auto-generated method stub
return 0;
}

public Object getNome() {
// TODO Auto-generated method stub
return null;
}
public void setNome(String showInputDialog) {
// TODO Auto-generated method stub

}

public boolean setSaque(double valorSaque) {
// TODO Auto-generated method stub
return false;
}

public Integer getConta() {
// TODO Auto-generated method stub
return null;
}
public void setConta(int parseInt) {
// TODO Auto-generated method stub

}

public void setCpf(String showInputDialog) {
// TODO Auto-generated method stub

}

}
Responder