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

Boa madrugada galera… :XD:
E possível eu criar uma variável do tipo List dentro do escopo global de uma classe tipo essa -->>

[code]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
}
}
[/code] 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…

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

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…

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&lt;Pecas&gt; 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&lt;Pecas&gt; lista = new ArrayList&lt;Pecas&gt;();

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&lt;Pecas&gt; lista; e a cada método que precisar dela, usar

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

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&lt;Pecas&gt; lista = new Array&lt;List&gt;(), 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()???

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&lt;Pecas&gt; lista = new ArrayList&lt;Pecas&gt;();

    public List&lt;Pecas&gt; getLista() {
        return lista;
    }

    public void setLista(List&lt;Pecas&gt; 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);
  } 
}

[quote=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&lt;Pecas&gt; lista = new ArrayList&lt;Pecas&gt;();

    public List&lt;Pecas&gt; getLista() {
        return lista;
    }

    public void setLista(List&lt;Pecas&gt; 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);
  } 
}

[/quote]

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)???

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.

Ok… vo testar aqui qualquer coisa aviso!!

Obrigado!