Manipulação de List do pacote java.util.List

8 respostas
A
Boa madrugada galera.. :XD: E possível eu criar uma variável do tipo List dentro do escopo global de uma classe tipo essa -->>
public class Teste
{
   private List<Pecas> lista;
  
   public void adicionar_Na_ListaactionPerformed(ActionEvent e) 
  { 
      ....// AQUI DENTRO SERÁ INSERIDO NA LISTA APÓS O USUÁRIO CLICAR NESSE BOTÃO
   }
  public void deletar_Da_ListaactionPerformed(ActionEvent e)
  {
   ..... // AQUI DENTRO SERÁ REMOVIDO DA LISTA
        // APÓS O USUÁRIO SELECIONAT UM ITEM DA JTABLE E CLICAR NESSE BOTÃO
  } 
}
e manipular inserção e deletação de itens dela dentro desses métodos??? ou seja, crio essa lista do tipo global e na tela tenho 2 botões, um de inserir na lista e o outro de remover da lista, é possível após eu clicar no botão inserir, os dados irem para essa lista ai do tipo global, por que ela não está local para o método, e a outra é caso eu selecione um dado da JTable ( TableModel) para deletar, após eu clicar no botão deletar essa dado ser deletado dessa lista do tipo global???? Caso essas paradas que falei acima sejam possíveis como sería????????

VLW Turma....

8 Respostas

A

corrijam-me se eu estiver errado, 1a resposta aqui no fórum:

1º) você pode sim acessar a lista nesses métodos (os métodos não são estáticos)

2º) para adicionar o item na lista você precisa passar o item como parâmetro para a função adicionar_NaListaActionPerformed(me parece que essa função é chamada no listener que vc registrou no botão, já que a assinatura do método não é a padrão e a classe não implementa nenhum listener).

3º) o mesmo para deletar o item da lista, só que nesse caso você vai precisar buscar pelo item na lista.

valeu e espero ter ajudado

A

Certo, esse dois métodos implementam um listernet, minha dúvida é se caso eu criar essa lista do tipo global, é possível eu inserir e remover itens dela atraves desses métodos ai, por as vezes quando vc cria uma variável global , taçlvez eu tava fazendo errado quando vc adiciona dados nela dentro de um método, e chama ela dentro de outro para ver os dados que estão nela, ja aconteceu comigo da variável global vim com valor nulo…
pois é então eu posso fazer isso ai que postei no início que sar certo né??? é pra uma tela de compras do meu sistema…

R

No java não existe o conceito de variável global.

Existe a variável de instância. Que vc terá acesso a ela em uma instância de sua classe.

private List<Pecas> lista; Para ter acesso a ela, vc precisa criar uma instância, e ela vai pertencer ao objeto criado, enquanto ele não for “destruido”.

E lembre-se também, toda lista deve ser inicializada, para não dar null pointer quando acessa-la.

Dai tem 2 formas, se vc fizer assim:

private List<Pecas> lista = new ArrayList<Pecas>();

Quando criar um objeto, sua lista ira incrementar elementos ou decrementa-los conforme vc for adicionando ou retirando elementos dentro do objeto criado.

Se vc fizer:

private List<Pecas> lista; e a cada método que precisar dela, usar

lista = new ArrayList<Pecas>(); dai vc reinicializa ela a cada new feito e perde os dados anteriores que foram inseridos.

A

Entendi, então para que eu possa adicionar e remover itens dela dentro dos métodos de addNaLista() e removerDaLista(), eu tenho que criar lá assim no escopo da classe private List<Pecas> lista = new Array<List>(), para que a medida que eu chamar ela no método addNaLista() para adicionar itens nela… caso eu crio ela dessa forma, a cada vez que eu chama- la dentro do método addNaLista() ela estará com os valores anteriores???
caso sim como faço para chama-la dentro do método addNaLista()???

R

Ela só terá os valores anteriores se for sempre referente ao mesmo objeto criado.

Tipo assim, vc tem a classe Teste, quando cria um objeto de Teste através de uma instancia
Teste t = new Teste();

Enquanto vc usar o objeto t, vai poder manipular sempre a mesma lista.

public class Teste
{
   private List<Pecas> lista = new ArrayList<Pecas>();

    public List<Pecas> getLista() {
        return lista;
    }

    public void setLista(List<Pecas> lista) {
        this.lista = lista;
    }
  
   public void adicionar_Na_ListaactionPerformed(ActionEvent e) 
  { 
     //Insere o que quer aqui
     getLista().add("Ola Java");
   }
  public void deletar_Da_ListaactionPerformed(ActionEvent e)
  {
     //aqui passa o indice, a posição do que quer remover na lista
     getLista().remove(2);
  } 
}
A

romarcio:
Ela só terá os valores anteriores se for sempre referente ao mesmo objeto criado.

Tipo assim, vc tem a classe Teste, quando cria um objeto de Teste através de uma instancia
Teste t = new Teste();

Enquanto vc usar o objeto t, vai poder manipular sempre a mesma lista.

public class Teste
{
   private List<Pecas> lista = new ArrayList<Pecas>();

    public List<Pecas> getLista() {
        return lista;
    }

    public void setLista(List<Pecas> lista) {
        this.lista = lista;
    }
  
   public void adicionar_Na_ListaactionPerformed(ActionEvent e) 
  { 
     //Insere o que quer aqui
     getLista().add("Ola Java");
   }
  public void deletar_Da_ListaactionPerformed(ActionEvent e)
  {
     //aqui passa o indice, a posição do que quer remover na lista
     getLista().remove(2);
  } 
}

Entendi… mas é necessarios usar o método getLista() dentro do método de incluir e deletar, ou eu posso simplismente usar this.lista.add(valor)???

R

Se vc vai utilizar dentro da própria classe, pode usar o this, mas se pretende usar fora da classe é bom criar o método get.

A

Ok… vo testar aqui qualquer coisa aviso!!

Obrigado!

Criado 9 de outubro de 2010
Ultima resposta 9 de out. de 2010
Respostas 8
Participantes 3