método setValueAt()

10 respostas
nefertiti

Olá a todos!

Estou tentando utilizar o método setValueAt()...mas não estou conseguindo. Alguém pode me dizer o que está errado com o código abaixo?..Pois ele não atualiza determinado dado na Jtable.

public void setValueAt(Object value, int row, int column){
      Animal  animal = (Animal) linhas.get(row);
      animal[column] = (String)value;
      
      switch(column) {
      
         case 0 : animal.setNumInterno((String) value);
         case 1 : animal.setNumExterno((String) value);
         case 2 : animal.setSexo((String) value);
         case 3 : animal.setDataNascimento((Date) value);
         case 4 : animal.setEspecie((Especie) value);
         case 5 : animal.setNomeMae((String) value);
         case 6 : animal.setNomePai((String) value);
         case 7 : animal.setProprietario((Proprietario) value);
         case 8 : animal.setRaca((Raca) value);
         case 9 : animal.setTipo((String) value);
         case 10 : animal.getFinalidade().setDoadorEmbriao((String) value);
         case 11 : animal.getFinalidade().setDoadorOvocito((String) value);
         case 12 : animal.getFinalidade().setDoadorSemen((String) value);
         case 13 : animal.getFinalidade().setProdutoFIV((String) value);
         case 14 : animal.getFinalidade().setEspeficicarFIV((String) value);
         case 15 : animal.getFinalidade().setProdutoIA((String) value);
         case 16 : animal.getFinalidade().setProdutoTE((String) value);
         case 17 : animal.getFinalidade().setIrmaoGemeo((String) value);
         case 18 : animal.getFinalidade().setOutros((String) value);
         case 19 : animal.getFinalidade().setEspeficificarOutros((String) value);
      
         fireTableCellUpdated(row,column);
      
     } 
   }

10 Respostas

lucao

Pelo que entendi tu recebe o valor e coloca num objeto Animal, modifica e depois não põe de volta ???

nefertiti

Olá…

Não sei como fazer com q a JTable atualize o dado…

Até mais

Patty

ViniGodoy

Não faltou uns breaks no seu case?
Aquele fire também é desnecessário.

A JTable já sabe que algum dado foi alterado quando chamou esse método e a célula será atualizada, mesmo sem o fire.

Focao
case 4 : animal.setEspecie((Especie) value);  
 case 7 : animal.setProprietario((Proprietario) value);   
  case 8 : animal.setRaca((Raca) value);

Vc consegue fazr esse cast assim ?
Pq da cast de String antes

animal[column] = (String)value;

sei naum hein… além que qquer value null com cast com String é pau na certa

ViniGodoy

Consegue sim, focão. No caso dela, o dado sempre vem como um objeto do tipo String. A menos que ela tenha definido alguma coluna como Boolean.class, o que acho que não foi o caso.

E é possível fazer cast de null para qualquer coisa, sem exception.

Dá uma olhada nesse model de exemplo também:
http://www.guj.com.br/posts/list/98452.java#530523

Focao

Caracas ViniGodoy tem razão

mas isso funciona se value estiver null

animal[column] = (String)value
peczenyj

Não ta faltando um break depois de cada case ?

ViniGodoy

Focão, essa linha não deve funcionar de jeito nenhum, pq animal não é um vetor.

T

E um Default.

Abraço!

ViniGodoy

default não é obrigatório.

Criado 26 de julho de 2006
Ultima resposta 17 de nov. de 2008
Respostas 10
Participantes 6