Como selecionar uma linha de um jtable.
Boa tarde,
Criei um metodo com nome preencher para usar o jtable. Após eu usar este metodo gostaria de saber como posso selecionar uma linhas para atualizar algumas informações do banco com as linhas selecionadas.
Criei um metodo com nome preencher para usar o jtable. Após eu usar este metodo gostaria de saber como posso selecionar uma linhas para atualizar algumas informações do banco com as linhas selecionadas.
David Alberto
Curtidas 0
Respostas
Anthony Accioly
11/05/2011
O TableModel obtido através do método getModel da JTable, possui o método getValueAt capaz de recuperar os valores de qualquer cell.Uma boa solução é usar um TableModelListener para marcar as linhas que foram editadas. Dessa forma você não tem que percorrer a tabela inteira novamente vendo quais objetos foram modificados. Alguns sistemas inclusive fazem atualizações online quando o usuário acabou de editar uma cell (Cuidado com problemas de performance desse tipo de solução)
Se a idéia é editar várias cells para salvar depois (por exemplo, ao clicar em um botão), eu recomendaria setar uma flag do tipo "foiEditada" para cada objeto (geralmente representado por uma linha da tabela), ou adicionar os objetos editados a um Set, toda vez que for disparado um evento tableChanged.
Na hora de persistir você usa os objetos marcados com a flag / presentes no Set para fazer as atualizações.Se você ainda não leu esse documento de uma ponta a outra, eu recomendo muito o Tutorial Oficial da Sun (erm.. Oracle): http://download.oracle.com/javase/tutorial/uiswing/components/table.html
Ps: Trabalhar com TableModels na unha dá um bocado de trabalho. Bibliotecas como http://java.net/projects/beansbinding/ (excelente suporte no IDE Netbeans) podem facilitar bastante sua vida, mantendo seus objetos e o modelo da tabela devidamente sincronizados. Veja esses tutoriais do Netbeans que ensinam a usar Swing + BeansBinding + AppFramework: http://netbeans.org/kb/docs/java/gui-db.html http://netbeans.org/kb/docs/java/gui-binding.html
Se a idéia é editar várias cells para salvar depois (por exemplo, ao clicar em um botão), eu recomendaria setar uma flag do tipo "foiEditada" para cada objeto (geralmente representado por uma linha da tabela), ou adicionar os objetos editados a um Set, toda vez que for disparado um evento tableChanged.
Na hora de persistir você usa os objetos marcados com a flag / presentes no Set para fazer as atualizações.Se você ainda não leu esse documento de uma ponta a outra, eu recomendo muito o Tutorial Oficial da Sun (erm.. Oracle): http://download.oracle.com/javase/tutorial/uiswing/components/table.html
Ps: Trabalhar com TableModels na unha dá um bocado de trabalho. Bibliotecas como http://java.net/projects/beansbinding/ (excelente suporte no IDE Netbeans) podem facilitar bastante sua vida, mantendo seus objetos e o modelo da tabela devidamente sincronizados. Veja esses tutoriais do Netbeans que ensinam a usar Swing + BeansBinding + AppFramework: http://netbeans.org/kb/docs/java/gui-db.html http://netbeans.org/kb/docs/java/gui-binding.html
GOSTEI 0
Anthony Accioly
11/05/2011
Outra sugestão é dar uma olhada em Glazed Lists, quebra um galhão para fazer esse tipo de coisa.
GOSTEI 0
Dyego Carmo
11/05/2011
No meu devspace vc pode ver algumas aulas sobre Sw2ing , e la eu ensino EXATAMENTE ISSO..
Valeu !
Valeu !
GOSTEI 0