Vetor, como inserir dados

8 respostas
S

Boa tarde pessoal, estou fazendo um sisteminha pequeno para cadastro de aluno, um trabalho da faculdade. Nele tenho um JFrame e um internal frame. Informo a nota1 e a nota2 e esse sistema retorna a média.

O sistema também pede isso:

O botão Cadastrar, deverá ser instanciado um objeto de acordo com o tipo de Aluno escolhido (graduação e pos-graduação), utilizando um Vector para armazenar vários alunos, fazer o cálculo da média e exibir o resultado na caixa de texto média.

Botão Exibir Alunos Cadastrados - deverá ser habilitado após o cadastro de um objeto. Quando o usuário clicar neste botão todos os dados de cada aluno cadastrado deverão ser mostrados na textarea presente na interface.

Cada aluno possui os atributos RA, Nome, Nota1, Nota2, Média, se for graduação o Ano e se for Pós-Graduação o Título. Logo cada aluno possui 6 atributos.

Qual seria a lógica para inclui-los nesse vetor? Isso não teria que ser uma matriz?

Quando eu incluir o primeiro, eu vejo o tamanho do meu vetor para habilitar o meu botão?

E para inserir os campos na minha textArea, eu uso um for ate percorrer todo vetor ou matriz?

Por favor me ajudem.

Ps.: em anexo segue uma ss da tela.

Grato.

8 Respostas

rafagil

Crie uma “variável” do tipo java.util.Vector (aliás, diga para o seu prof, q essa classe é muito antiga, e nem é mais usada)
ela é como se fosse uma lista, e você pode adicionar qualquer objeto nela usando o metodo add:

import java.util.Vector

public class SuaClasse {

  Vector alunos = new Vector();

  public void adiciona(Aluno a) {
     alunos.add(a);
  }

  public int verTamanho() {
     return alunos.size();
  }

}

espero ter ajudado, qq coisa é soh perguntar

S

Vou avisa-la sim, eu newbão de tudo pensei que era um vetor.

Vou implementar aqui e como ultimo recurso peço ajuda novamente.

Desde ja agradeço.

Abraços.

ViniGodoy

Para você não começar errado, use ArrayList, não Vector. O Vector é uma classe antiga, que foi considerada obsoleta a partir do Java 1.2. Ele também é sincronizado, sendo muito mais lento em diversas situações.

Para ver como usar list, em detalhes, veja o tópico:
http://www.guj.com.br/posts/list/74068.java#389435

Lá também tem um link com uma explicação detalhada do porque você não deve usar Vectors.

PS: No caso do código acima, dado de exemplo pelo rafagil, basta trocar a linha

Vector alunos = new Vector();

Por

List alunos = new ArrayList();

Se tiver usando Java 5, considere também dizer para o list qual é o tipo de dado que vai dentro dele.

List<Aluno> alunos = new ArrayList<Aluno>();
S

Não, ela não vai deixar utilizar isso. No outro bimestre ela tirou 2 pontos porque em um exercício ela não pedia Orientação a Objetos, ela queria que fizesse o programinha todo estrutural, e eu nem sabia, fiz umas coisas pra economizar codigo e me ferrei.

Professora mala, mas tudo bem.

Caras, agradeços muito a vocês, estou conseguindo fazer.

Só preciso de uma coisinha, eu estou tentando adicionar o conteúdo do Vector no jTextArea, mas não consigo.

Ja tentei jTextArea1.setText(alunos.toString()) e mais uns outros metodos que o NetBeans aponta, mas ta embassado.

Me ajudem nisso por gentileza.

Abraços.

ViniGodoy

Então mande o tópico acima para sua professora.
Ela não deveria estar dando aula usando para isso um recurso obsoleto. De qualquer forma, você ainda pode se garantir declarando o Vector assim:

List alunos = new Vector();

Ou

List alunos = new Vector();

Vampiro

Por causa de professores medíocres os alunos ficam pastando, pastando…

Se era para aprender programação estruturada que usasse uma linguagem própria para isso, como Pascal.

Java é bem mais interessante… só perde para o COBOL…

xan

spdio:

Só preciso de uma coisinha, eu estou tentando adicionar o conteúdo do Vector no jTextArea, mas não consigo.

Ja tentei jTextArea1.setText(alunos.toString()) e mais uns outros metodos que o NetBeans aponta, mas ta embassado.

Me ajudem nisso por gentileza.

Abraços.

resolvi assim:

... //seu codigo
for(int i = 0; i < alunos.size(); i++)
    jTextArea1.append(alunos.elementAt(i) + "\n");

caso um elemento de alunos seja uma estrutura, coloque o campo que deseja imprimir após o indice, por exemplo, o campo nome do aluno:

... //seu codigo
for(int i = 0; i < alunos.size(); i++)
    jTextArea1.append(alunos.elementAt(i).nome + "\n");

lembrando que o metodo objeto.append() apenas adiciona ao fim, e nao sobrepõe.

S

Galera, funcionou, muito obrigado a todos.

Eu também acho um saco isso de aprendermos coisas antigas, mas infelizmente a faculdade é muito fraca. Aprendi que para aprender mesmo é trabalhando, na faculdade vc tem teorias pra correr atrás, vai do interesse de cada um.

Mas é isso ai.

Um grande abraço.

E novamente muito obrigado.

Criado 27 de novembro de 2007
Ultima resposta 27 de nov. de 2007
Respostas 8
Participantes 5