Ajuda com update em lista

10 respostas
fabiodurgante

seguinte tenho um metodo para inserir e excluir em umalista fuciona perfeitamente, gostaria de atualizar os dados da lista como poderia fazer isso

public static void inserirLISTA(Cheque cli) {
        if(cli == null)
            return;
        
        if(Lista_cheque.contains(cli))
            return;
        
        cli.setid_cheque(ultimoId_Cliente);
        ultimoId_Cliente++;
        Lista_cheque.add(cli);
    }
    
    
    public static void excluirLISTA(Cheque cli) {
        Lista_cheque.remove(cli);
    }

10 Respostas

luisgarcia173

o que quer dizer com “atualizar”? seria ordenar, pq assim que inclui ou exclui um elemento a lista já está atulizada? ou quis dizer Alterar, se for utilize o LinkedList para alterar registro em um lista indexida.

fabiodurgante

isso mesmo quero alterar o item digamos 5 dalista eu listo todo o array em 1 jtable e seleciono alinha q desejo alterrar passo todo o objeto mas

Cheque c = buscaNaTabela();
    if(c != null)
        new alterar_cheque_data(null, true, c).setVisible(true);

assim recebo os dados so que nao consigo aletrar ele

abelgomes

vc conegue editar na tela? No caso vc não consegue alterar porque como esta fazendo referencia para o objeto da classe Cheque e ela nao tem metodo equals. Ela pega o da superclasse e o da superclasse usa todos os atributos. Tipo vc tem que sobrescrever o equals dizendo qual vai ser o seu criterio para um objeto ser igual ou diferente.

@Override
	public boolean equals(Object obj) {
		VOUnidadeAdministrativa vo  =  (VOUnidadeAdministrativa) obj;
		if(vo.getCoUnidadeAdministrativa().equals(getCoUnidadeAdministrativa()))
			return true;
		return false;
	}

minha classe tem varios atributos, mas eu digo para ela que um objeto sera igual ao outro se estiverem o mesmo codigo. Se eu nao fizer isso ela vai comparar todos os atributos. O metodo contains que vc utiliza para saber se ja existe o objeto utiliza esse metodo(equals) entao quando vc altera o objeto na sua tabela, para a lista é um objeto novo pois pelo menos um atributo é diferente dos demais que ja contem na lista.

Falei muito…mas acho que é isso…espero ter ajudado

fabiodurgante

assimolha meus metodos

public static void inserirLISTA(Cheque cli) {
        if(cli == null)
            return;
        
        if(Lista_cheque.contains(cli))
            return;
        
        cli.setid_cheque(ultimoId_Cliente);
        ultimoId_Cliente++;
        Lista_cheque.add(cli);
    }
    
    
    public static void excluirLISTA(Cheque cli) {
        Lista_cheque.remove(cli);
    }

    
    public static List<Cheque> listarLISTA(String text) {
        List<Cheque> temp = new ArrayList<Cheque>();
        for(Cheque c:Lista_cheque)
            if(c.getvalor_cheque().toString().contains(text))
                temp.add(c);
        
        return temp;
    }

    
    public static Cheque consultarLISTA(Integer id) {
        for(Cheque c:Lista_cheque)
            if(c.getid_cheque() == id)
                return c;
        
        return null;
    }

esses ai funciona perfeitamente eu pego atraves do jtable o objeto assim

Cheque c = buscaNaTabela();
    if(c != null)
        new alterar_cheque_data(null, true, c).setVisible(true);


    }                                        



//-------------------------------------------------------------------
  private Cheque buscaNaTabela() {
    if(jtblClientes.getSelectedRow() == -1) {
        JOptionPane.showMessageDialog(this, "Selecione uma linha da tabela",
                "Erro", JOptionPane.ERROR_MESSAGE);
        return null;
    }
    Integer id = Integer.parseInt(
            jtblClientes.getValueAt(jtblClientes.getSelectedRow(), 0).toString());
    return ChequeDao.consultarLISTA(id);
}

pega direitinho abre o jdialog com os dados certinho certinho porem nao sei como altera-lo

depois no jdialog fica ssim no construtor

public alterar_cheque_data(java.awt.Frame parent, boolean modal, Cheque cheque) {
       super(parent, modal);
        initComponents();
         //ven = new Venda();

//GregorianCalendar gc = new GregorianCalendar();
// System.out.print( gc.getTime());




 String data = "dd/MM/yyyy";
String data1, data2,hora1;

SimpleDateFormat formata = new SimpleDateFormat(data);
data1 = formata.format(cheque.getdata_atual());
data2 = formata.format(cheque.getdata_cheque());



   //jtfhora_venda.setText(hora1);
   jtfdata_atual.setText(data1);
taxa_juros.setText(cheque.gettaxa_juros().toString());
jtfdata_atual.setText(cheque.gettaxa_juros().toString());
valor_cheque.setText(cheque.getvalor_cheque().toString());

jtfdata_atual.setText(data1);
jtfdata_cheque.setText(data2);
jtfvalor_devolver.setText(cheque.getvalor_devolver().toString());
jtfvalor_juros.setText(cheque.getvalor_juros().toString());


    }
abelgomes

dentro da sua classe Cheque vc sobrescreve o equals e diz qual vai ser seu criterio de idenficação dos objetos. Pq do jeito que esta ele usa todos os atributos.
se sua classe cheque tiver 100 atributos e sua lista 10 objetos. QAundo for inserir um novo objeto na lista, quando vc faz isso

if(Lista_cheque.contains(cli))

return;

só vai retornar se todos os 100 atributos forem iguais. NO caso vc clica em editar e altera qualquer coisa, para a lista será um novo objeto pq vc nao sobrescreveu seu equals e ela vai comprar com os 100 atributos…COnseguiu pegar a ideia?

fabiodurgante

entendi mas nao sei fazer poderia alterarr um metodo dos meus ai pra dar uma clareada desde ja agradeço

abelgomes

blz…posta ai sua classe cheque

fabiodurgante

cheque

package modelo;


import java.awt.Image;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import javax.swing.ImageIcon;

/**
 *
 * @author Administrador
 */
public class Cheque {
    
    private Integer id_cheque;
        private Integer dias;
   private Double valor_cheque;
    private Double taxa_juros;
    private Date data_cheque;
      private Date data_atual;
    private Double valor_juros;

    private Double valor_devolver;
    private Double valor_total_cheques;
    private List<Cheque> cheques;
         
               
    
    public Cheque() {
        id_cheque=0;
           valor_cheque = 0.0;
        taxa_juros = 0.0;
        data_cheque = null;
        data_atual = null;
        valor_juros = 0.0;
        valor_devolver =0.0;
valor_total_cheques=0.0;
dias=0;
 cheques = new ArrayList<Cheque>();

    }

//-----------------------------------------------------------------------
   public List<Cheque> getNotas() {
        return cheques;
    }

    public void setNotas(List<Cheque> cheques) {
        this.cheques = cheques;
    }
//-----------------------------------------------------------------------
  public Integer getid_cheque() {
        return id_cheque;
    }
  
    public void setid_cheque(Integer id_cheque) {
      this.id_cheque = id_cheque;
    }
//-----------------------------------------------------------------------
    
  public Integer getdias() {
        return dias;
    }

    public void setdias(Integer dias) {
      this.dias = dias;
    }
//-----------------------------------------------------------------------
    
  public Double getvalor_cheque() {
        return valor_cheque;
    }

    public void setvalor_cheque(Double valor_cheque) {
      this.valor_cheque = valor_cheque;
    }
//-----------------------------------------------------------------------
  public Double gettaxa_juros() {
        return taxa_juros;
    }

    public void settaxa_juros(Double taxa_juros) {
      this.taxa_juros = taxa_juros;
    }
//-----------------------------------------------------------------------
    public Double getvalor_juros() {
        return valor_juros;
    }

    public void setvalor_juros(Double valor_juros) {
      this.valor_juros = valor_juros;
    }
//-----------------------------------------------------------------------
  
    public Double getvalor_devolver() {
        return valor_devolver;
    }

    public void setvalor_devolver(Double valor_devolver) {
      this.valor_devolver = valor_devolver;
    }
//-----------------------------------------------------------------------

    public Double getvalor_total_cheques() {
        return valor_total_cheques;
    }

    public void setvalor_total_cheques(Double valor_total_cheques) {
      this.valor_total_cheques = valor_total_cheques;
    }
//-----------------------------------------------------------------------

    public Date getdata_cheque() {
        return data_cheque;
    }

    public void setdata_cheque(Date data_cheque) {
      this.data_cheque = data_cheque;
    }
//-----------------------------------------------------------------------

    public Date getdata_atual() {
        return data_atual;
    }

    public void setdata_atual(Date data_atual) {
      this.data_atual = data_atual;
    }
//-----------------------------------------------------------------------



}
abelgomes

cheque

package modelo;


import java.awt.Image;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import javax.swing.ImageIcon;

/**
 *
 * @author Administrador
 */
public class Cheque {
    
    private Integer id_cheque;
        private Integer dias;
   private Double valor_cheque;
    private Double taxa_juros;
    private Date data_cheque;
      private Date data_atual;
    private Double valor_juros;

    private Double valor_devolver;
    private Double valor_total_cheques;
    private List<Cheque> cheques;
         
               
    
    public Cheque() {
        id_cheque=0;
           valor_cheque = 0.0;
        taxa_juros = 0.0;
        data_cheque = null;
        data_atual = null;
        valor_juros = 0.0;
        valor_devolver =0.0;
valor_total_cheques=0.0;
dias=0;
 cheques = new ArrayList<Cheque>();

    }

//-----------------------------------------------------------------------
   public List<Cheque> getNotas() {
        return cheques;
    }

    public void setNotas(List<Cheque> cheques) {
        this.cheques = cheques;
    }
//-----------------------------------------------------------------------
  public Integer getid_cheque() {
        return id_cheque;
    }
  
    public void setid_cheque(Integer id_cheque) {
      this.id_cheque = id_cheque;
    }
//-----------------------------------------------------------------------
    
  public Integer getdias() {
        return dias;
    }

    public void setdias(Integer dias) {
      this.dias = dias;
    }
//-----------------------------------------------------------------------
    
  public Double getvalor_cheque() {
        return valor_cheque;
    }

    public void setvalor_cheque(Double valor_cheque) {
      this.valor_cheque = valor_cheque;
    }
//-----------------------------------------------------------------------
  public Double gettaxa_juros() {
        return taxa_juros;
    }

    public void settaxa_juros(Double taxa_juros) {
      this.taxa_juros = taxa_juros;
    }
//-----------------------------------------------------------------------
    public Double getvalor_juros() {
        return valor_juros;
    }

    public void setvalor_juros(Double valor_juros) {
      this.valor_juros = valor_juros;
    }
//-----------------------------------------------------------------------
  
    public Double getvalor_devolver() {
        return valor_devolver;
    }

    public void setvalor_devolver(Double valor_devolver) {
      this.valor_devolver = valor_devolver;
    }
//-----------------------------------------------------------------------

    public Double getvalor_total_cheques() {
        return valor_total_cheques;
    }

    public void setvalor_total_cheques(Double valor_total_cheques) {
      this.valor_total_cheques = valor_total_cheques;
    }
//-----------------------------------------------------------------------

    public Date getdata_cheque() {
        return data_cheque;
    }

    public void setdata_cheque(Date data_cheque) {
      this.data_cheque = data_cheque;
    }
//-----------------------------------------------------------------------

    public Date getdata_atual() {
        return data_atual;
    }

    public void setdata_atual(Date data_atual) {
      this.data_atual = data_atual;
    }
//-----------------------------------------------------------------------

    @Override  
    public boolean equals(Object obj) {  
           Cheque ch  =  (Cheque) obj;  
           if(ch.getid_cheque().equals(getid_cheque()))  
               return true;  
            return false;  
    }  

}

Nesse caso foi colado seu id do cheque como sendo a unica chave do objeto. Faça o teste agora

fabiodurgante

onde eu uso isso ai tipo pra alterar

Cheque c = buscaNaTabela();
    if(c != null)
        new alterar_cheque_data(null, true, c).setVisible(true);


    }                                        



//-------------------------------------------------------------------
  private Cheque buscaNaTabela() {
    if(jtblClientes.getSelectedRow() == -1) {
        JOptionPane.showMessageDialog(this, "Selecione uma linha da tabela",
                "Erro", JOptionPane.ERROR_MESSAGE);
        return null;
    }
    Integer id = Integer.parseInt(
            jtblClientes.getValueAt(jtblClientes.getSelectedRow(), 0).toString());
    return ChequeDao.consultarLISTA(id);
}

teria qu eter um metodo
e dar um

Lista_cheque.get(cli.getid_cheque());

para poder mecher nos itens senao como altera-los ???

Criado 31 de março de 2011
Ultima resposta 31 de mar. de 2011
Respostas 10
Participantes 3