Desculpa, vou colocar tudo que fiz para ficar mais fácil:
Main:
/**
*
* @author Uilson Claudio Filho
* RA: 20477492
*/
package maisenergia;
import javax.swing.JOptionPane;
public class AppContaEnergia {
public static void main(String[] args) {
// TODO code application logic here
int i, opcao;
GerenciaContasEnergia contasEnergia = new GerenciaContasEnergia();
ContaEnergia contaEnergia = new ContaEnergia();
do
{
opcao= Integer.parseInt(JOptionPane.showInputDialog("1 - " +
"Adicionar ContaEnergia" +
"\n 2 - Buscar ContaEnergia e exibir os dados" +
"\n 3 - Exibir mais econômica" +
"\n 4 - Exibir Consumo Médio" +
"\n 5 - Listar todas" +
"\n 6 ? Sair"
));
switch(opcao){
case 1:
Cliente cliente = new Cliente();
cliente.setNome(JOptionPane.showInputDialog("Nome do Cliente:"));
cliente.setEndereco(JOptionPane.showInputDialog("Endereço do Cliente:"));
contaEnergia.setNomeEndereco(cliente);
contaEnergia.setNumeroConta(Integer.parseInt(JOptionPane.showInputDialog("Numero da conta:")));
contaEnergia.setQtdeKWConsumidos(Float.parseFloat(JOptionPane.showInputDialog("KW Consumidos")));
contaEnergia.setValorKWUnitario(Float.parseFloat(JOptionPane.showInputDialog("KW Unitário")));
contasEnergia.adicionarContaEnergia(contaEnergia);
break;
case 2:
int dadosConta = Integer.parseInt(JOptionPane.showInputDialog("Entre com o numero da conta"));
ContaEnergia valorConta = contasEnergia.buscarContaEnergia(dadosConta);
//valorConta.Imprimir();
JOptionPane.showMessageDialog(null, valorConta.Imprimir());
break;
case 3:
break;
case 4:
float valorContaMedia = contasEnergia.exibirConsumoMedioKw();
JOptionPane.showMessageDialog(null, "Valor da média:" + valorContaMedia);
break;
case 5:
JOptionPane.showMessageDialog(null, contasEnergia.listarTodas());
break;
case 6:
System.exit(0);
break;
default:
JOptionPane.showMessageDialog(null, "Opção inválida!! Escolha novamente");
opcao = 1;
}
}while(opcao >=1 && opcao <= 6);
}
}
Classe ContaEnergia:
/**
*
* @author Uilson Claudio Filho
* RA: 20477492
*/
package maisenergia;
public class ContaEnergia {
public ContaEnergia(int numeroConta,
String cliente,
Float valorKWUnitario,
Float qtdeKWConsumidos,
Cliente nomeEndereco,
Float total)
{
this.numeroConta = numeroConta;
this.valorKWUnitario = valorKWUnitario;
this.qtdeKWConsumidos = qtdeKWConsumidos;
this.nomeEndereco = nomeEndereco;
this.total = total;
}
public ContaEnergia(){}
private int numeroConta;
private float valorKWUnitario;
private float qtdeKWConsumidos;
private Cliente nomeEndereco;
private float total;
public void setTotal( float total){
this.total = total;
}
public float getTotal(){
return this.total;
}
public void setNomeEndereco( Cliente cliente){
nomeEndereco = cliente;
}
public Cliente getNomeEndereco(){
return this.nomeEndereco;
}
public void setNumeroConta( int numeroConta ){
this.numeroConta = numeroConta;
}
public int getNumeroConta(){
return this.numeroConta;
}
public void setValorKWUnitario( Float valorKWUnitario ){
this.valorKWUnitario = valorKWUnitario;
}
public float getValorKWUnitario(){
return this.valorKWUnitario;
}
public void setQtdeKWConsumidos( Float qtdeKWConsumidos ){
this.qtdeKWConsumidos = qtdeKWConsumidos;
}
public float getQtdeKWConsumidos(){
return this.qtdeKWConsumidos;
}
// public float calcularTotalConta(Float valorKWUnitario, Float qtdeKWConsumidos )
// {
// total = qtdeKWConsumidos * valorKWUnitario;
//
// return total;
// }
public String Imprimir()
{
String saida = "";
saida += "\n" + "Nome do Cliente: " + nomeEndereco.getNome()
+ "\n" + "Endereço: " + nomeEndereco.getEndereco()
+ "\n" + "Numero da conta: " + numeroConta
+ "\n" + "KW Consumidos: " + qtdeKWConsumidos
+ "\n" + "KW Unitário: " + valorKWUnitario;
return saida;
}
}
Classe GerenciaContasEnergia:
/**
*
* @author Uilson Claudio Filho
* RA: 20477492
*/
package maisenergia;
import java.util.ArrayList;
import javax.swing.JOptionPane;
public class GerenciaContasEnergia {
ArrayList<ContaEnergia> arrayContaEnergia;
public GerenciaContasEnergia()
{
arrayContaEnergia = new ArrayList();
}
public void adicionarContaEnergia(ContaEnergia conta)
{
arrayContaEnergia.add(conta);
}
public ContaEnergia buscarContaEnergia(int contaEnergia)
{
ContaEnergia conta = new ContaEnergia();
for (ContaEnergia obj : arrayContaEnergia)
{
if(obj.getNumeroConta() == contaEnergia)
{
return obj;
// conta.setNomeEndereco(obj.getNomeEndereco());
// conta.setNumeroConta(obj.getNumeroConta());
// conta.setQtdeKWConsumidos(obj.getQtdeKWConsumidos());
// conta.setValorKWUnitario(obj.getValorKWUnitario());
}
}
return conta;
}
public String listarTodas()
{
String saida= "";
if(arrayContaEnergia.isEmpty()){
JOptionPane.showMessageDialog(null, "Nenhuma conta cadastrada!!");
}
else
{
for (ContaEnergia obj : arrayContaEnergia)
{
saida += obj.Imprimir() + "\n";
}
}
return saida;
}
public String exibirContaEconomica()
{
String saida= "";
if(arrayContaEnergia.isEmpty()){
JOptionPane.showMessageDialog(null, "Nenhuma conta cadastrada!!");
}
else
{
for (ContaEnergia obj : arrayContaEnergia)
{
saida += obj.Imprimir() + "\n";
}
}
return saida;
}
public float exibirConsumoMedioKw()
{
String saida= "";
float total = 0;
float totalMedia=0;
ContaEnergia conta = new ContaEnergia();
if(arrayContaEnergia.isEmpty()){
JOptionPane.showMessageDialog(null, "Nenhuma conta cadastrada!!");
}
else
{
for (ContaEnergia obj : arrayContaEnergia)
{
total+= obj.getQtdeKWConsumidos();
}
totalMedia = total / arrayContaEnergia.size();
}
return totalMedia;
}
}
Classe cliente Java:
/**
*
* @author Uilson Claudio Filho
* RA: 20477492
*/
package maisenergia;
public class Cliente {
private String nome;
private String endereco;
public void setNome( String nome ){
this.nome = nome;
}
public String getNome(){
return this.nome;
}
public void setEndereco( String endereco ){
this.endereco = endereco;
}
public String getEndereco(){
return this.endereco;
}
public String Imprimir()
{
String retorno = "Nome: " + this.nome + "Endereco: " + this.endereco;
return retorno;
}
}
Dentro dessas classes, preciso varrer o arrayList para pegar o que o usuário cadastrou . O metodo que estou tentando fazer isso é o :
public ContaEnergia buscarContaEnergia(int contaEnergia)
{
ContaEnergia conta = new ContaEnergia();
for (ContaEnergia obj : arrayContaEnergia)
{
if(obj.getNumeroConta() == contaEnergia)
{
return obj;
// conta.setNomeEndereco(obj.getNomeEndereco());
// conta.setNumeroConta(obj.getNumeroConta());
// conta.setQtdeKWConsumidos(obj.getQtdeKWConsumidos());
// conta.setValorKWUnitario(obj.getValorKWUnitario());
}
}
return conta;
}
Eu até alterei da maneira que vc me falou , mas quando faço a segunda pesquisa ele me retorna erro, porem não exibe o erro no console do netbeans e fecha o programa.
É esse ponto que postei, mas agora vc tem todas as classes e objetos para verificar, pois estou começando com java e preciso entregar esse trabalho hj ainda.
Obrigado pela ajuda