Usando array

12 respostas
O
import javax.swing.JOptionPane;

/**
 *
 * @author Dell
 */
public class Q5 {
   private String nomeAt,nome,endereco,fone;
    String[] contato;
    public Q5()
    {
        nomeAt=JOptionPane.showInputDialog(null, "Qual o nome da atendente:");
        contato = new String[10];
        
    }
    public void add()
    {
        nome = JOptionPane.showInputDialog("NOME:");
        endereco = JOptionPane.showInputDialog("ENDEREÇO:");
        fone = JOptionPane.showInputDialog("FONE:");
        
       String[] contato = {nome,endereco,fone};
    }
    public void delete()
    {
        String[] contato={};
        String nome = JOptionPane.showInputDialog("Quem vc quer deletar?");
        int i=0;
        while(i<10)
        {
            if((this.nome) == (nome))
            {
                //contato = {};
            }
        }
    }
}

[color=red]Como estão vendo, n to conseguindo saber como add uns contatos em um array, queria que alguem me explicasse como poderia fazer isso?!
Obrigado![/color]

12 Respostas

cido18

olá ohara,

Cara porque você não faz uma classe de contatos, e na hora de adicionar não utilizar um ArrayLista??

Acho que seria mais fácil… claro que não sei se você pode fazer isso.

O

[color=green]Olá cido18,
eu não posso tenho que fazer com um array, tenho que fazer em uma classe os metodos(add, excluir,setters, getters). E chamar esses métodos em outra classe onde vai ter o metodo main…
[/color]

matheuslmota

Contato é um array que comporta até 10 Strings. Você adiciona uma String nesse array atribuindo um valor a uma posição específica.

contato[0] = nome; contato[1] = endereco; contato[2] = fone;
Pelo código, vi que você quer armazenar 10 contatos. Como você tem três informações para cada contato (nome, endereço e telefone), você deve criar um array com trinta posições, ao invés de 10.

contato = new String[30];
cido18

matheuslmota, o problema deste metodo não seria na hora de excluir algum contato?

matheuslmota
Pois é, o método de adicionar contatos estava com problemas. Para ele remover um contato, basta ele colocar uma String vazia ou nulo na posição do vetor.
contatos[0] = null;
contatos[1] = null;
contatos[2] = null;
Uma dica que dou é que você crie uma classe Contato com três campos, nome, endereco e fone. contatos, ao invés de vetor de String, seria um vetor de Contato. Então você poderia usar o vetor da seguinte forma:
Contato[] contatos = new Contato[10];
Lá no método de adicionar, você procederia da seguinte forma:
Contato contato = new Contato();
contato.nome = nome;
contato.endereco = endereco;
contato.fone = fone;

contatos[0] = contato;//Adiciona contato na posição 0 do vetor
O

[color=darkblue][b]Entendi a dica Mateuslmota , jaja digo o que seu eu consegui…

obrigado pela ajuda tanto mateuslmota e o cido18.

valeu! [/color][/b] :slight_smile:

sowyer

Uma duvida … cara, pq tu “pinta” de cores diferentes as tuas respostas ? :stuck_out_tongue:

cido18

ohara, se você não tiver mais dúvidas não esqueça de colocar o tópico como respondido.

Qualquer coisa é só postar.

O

Eu não entendi como fazer esse

contato.nome
contato.endereco
contato.fone

Fiz outra classe pra contatos como me disseram, olha como deixei por enquanto, e ta dando erro ao add:

import java.util.Arrays;
import javax.swing.JOptionPane;

/**
 *
 * @author Dell
 */
public class Q5contato 
{
    String[] contato;
    
    public Q5contato()
    {
        String[] contato = new String[30];
    }
    
    public void add()
    {
        String nome= JOptionPane.showInputDialog("Digite o nome: ");
        String ender = JOptionPane.showInputDialog("Digite o Endereco: ");
        String fone = JOptionPane.showInputDialog("Digite o Fone: ");
                contato[0] = nome;
                contato[1] = ender;
                contato[2] = fone;
                
                JOptionPane.showMessageDialog(null, "Adicionado!");
            
     }
    
    
    public void del()
    {
        String pS = JOptionPane.showInputDialog("Qual posição vc quer deletar");
        int p = Integer.parseInt(pS);
        for(int i = 0; i<30;i++)
        {
            if ((p==0) ||( p == i+3))
            {
                contato[p]= null;
                contato[p+1]=null;
                contato[p+2]=null;
                
                JOptionPane.showMessageDialog(null, "Deletado");
            }
            else
                JOptionPane.showMessageDialog(null, "Erro, delete o indide de um nome!");
        }
    }
    
    public void vizualizar()
    {
        System.out.println(Arrays.toString(contato));
        
    }
    
    public void menu()
    {
        String opcaoS = JOptionPane.showInputDialog("Digite 1 para add! 2 para deletar! 3 para vizualizar! Digite 0 para Sair ");
       int opcao = Integer.parseInt(opcaoS);
       
        switch(opcao)
        {
           
           case 1:
               add();
               break;
           case 2:
               del();
               break;
               
           case 3:
                vizualizar();
              break;
           case 0:
               System.exit(0);
           default:
               JOptionPane.showMessageDialog(null, "Opcao invalida!");
        }
    }
}
cido18

Se vc fez a classe contato então ficaria:

public void add(){

String nome = JOptionPane.ShowInputDialog("Digite o nome:" ):
String ender = JOptionPane.ShowInputDialog("Digite o end:" ):
String fone = JOptionPane.ShowInputDialog("Digite o fone:" ):

Contato contato = new Contato( nome, ender, fone);
JOptionPane.ShowMessageDialog(null, "Adicionado!");

}
cido18

Opa falto:

Contato[] contatos = new Contato[10]

Por exemplo, mas não esqueça de definir isto na classe, e não no metodo .

prfs91

Pq não usa registro???

Aí cria um dentro de cada posição da matriz aí ficaria:

contato[i].nome
contato[i].endereco
contato[i].fone

aí seria um vetor de 10 posições que armazena 3 informações em cada posição…

Criado 10 de novembro de 2012
Ultima resposta 12 de nov. de 2012
Respostas 12
Participantes 5