Access object array inside a switch

3

Good evening, I'm having difficulty accessing and modifying an array of main class objects within a switch in the view class.

The array is declared as such in the main:

public class Controle {

public static void main(String[] args) {

    Visao umaVisao = new Visao();
    Cliente umCliente = new Cliente();
    Bebida umaBebida = new Bebida();
    Comida umaComida = new Comida();
    Funcionario umFuncionario = new Funcionario(null);


    Cliente[] array = new Cliente[100];

    umaVisao.Recepcao();
    umaVisao.NoMesasDisp();
    umaVisao.selecionarOperacao(umCliente, umFuncionario, umaVisao, umaComida, umaBebida);

The program is about the operation of a bar where the Client object contains Name, Table, orders etc. And in the add switch the client looks like this:

public void selecionarOperacao(Cliente umCliente, Funcionario umFuncionario, Visao umaVisao, Comida umaComida, Bebida umaBebida)
  {
  String[] opcoes = {"Imprimir conta", "Cardapio", "Adicionar pedido", "Cadastrar mesa", "Alterar preços", "Quit"};
  Cliente[] arrayDeObjetos = new Cliente[100];

  while (true) {
      int resposta = JOptionPane.showOptionDialog(null 
                       , "Selecione a operação a ser realizada"        
                       , "Programa de Gerencimaneto do Bar"              
                       , JOptionPane.YES_NO_OPTION  
                       , JOptionPane.PLAIN_MESSAGE  
                       , null                       
                       , opcoes                    
                       , "" 
                     );
      switch (resposta) {
          case 0: 
              umaVisao.ImprimeConta(umCliente, umaVisao);;
              break;

          case 1:

              umaVisao.Cardápio(umaComida, umaBebida);
              break;

          case 2:
              umaVisao.adicionaPedido(umCliente, umaComida, umaBebida, umaVisao, umFuncionario);
              break;

          case 3:

              int digiteAMesa = Integer.parseInt(JOptionPane.showInputDialog("Digite o numero da mesa que vai cadastrar"));
              arrayDeObjetos[digiteAMesa] =  umaVisao.cadastraCliente();

              break;

          case 4:
              umaVisao.alteraprecos(umCliente, umFuncionario, umaVisao, umaComida, umaBebida);
              break;

          case -1:
              int result = JOptionPane.showConfirmDialog(null, "Deseja mesmo sair do programa? Qualquer registro será apagado.", "Sair", JOptionPane.YES_NO_OPTION);
              if (result == 1){
                  break;}
                  else{                 
                   System.exit(0);
                  }

          default:
              int resultado = JOptionPane.showConfirmDialog(null, "Deseja mesmo sair do programa? Qualquer registro será apagado.", "Sair", JOptionPane.YES_NO_OPTION);
              if (resultado == 1){
                  break;}
                  else{                 
                   System.exit(0);
                  }
      }

The method that adds client is this:

public Cliente cadastraCliente() {

  String nome = JOptionPane.showInputDialog("Digite o nome do Cliente: ");

  boolean maioridade = false;

  int dialogResult = JOptionPane.showConfirmDialog(null, "Existe um responsável maior de idade na mesa?", "Maioridade", JOptionPane.YES_NO_OPTION);
  if (dialogResult == 0){
      maioridade = true;}
      else
    maioridade = false;

  int numeroDePessoasNaMesa = Integer.parseInt(JOptionPane.showInputDialog("Mesa para quantas pessoas?"));

  Cliente umCliente = new Cliente();

  return umCliente;   
  }

My question is about how I can create an array of objects (in the main class), and by the switch accessing this method to add a client.

    
asked by anonymous 22.11.2015 / 01:14

1 answer

1

You can declare the method as follows:

public void selecionarOperacao(Cliente[] array, Cliente umCliente, Funcionario umFuncionario, Visao umaVisao, Comida umaComida, Bebida umaBebida) {}

You should pass the array as a parameter to the method. Arrays in java are also objects. When you add elements to the array within the selectOperation method, you are changing the same array that is in the main.

    
28.07.2016 / 22:15