Duvidas com JTable

7 respostas
P

Gostaria de saber se é possivel pegar um objeto de um JTable, nao preciso apenas de um atributo e sim de todo objeto contido em uma linha selecionada.

Desde ja agradeco…

7 Respostas

dexfelipe

Não sei se tem um jeito mais fácil, mas uma solução é pegar cada atributo da tabela e setar na classe do objeto correspondente (se ainda não tiver criado só criar).

Marky.Vasconcelos

WRONG!Essa é a maneira que se faz com DefaultTableModel. Mas NÃO FAÇA ISSO!

Olhe na minha assinatura um link que ensina como fazer seu TableModel e fazer exatamente o que voce quer.

P

entaum Mark…eu criei uma classe que extende AbstractTableModel…mas nao estou conseguindo pensar como poderei pegar o objeto da linha selecionada…deverei criar um metodo nessa classe neh?

marcosvidolin

Olá patrik_hi

Veja se ajuda: Você já tentou criar uma nova instância de seu objeto a partir dos campos obtidos do JTable?
No meu model eu costumo fazer isso criando um método, ex. getObjectByTable() que retorna um Object.

[]'s

erico_kl

como o grande Mark disse antes, o ObjectTableModel dele faz exatamente o que você quer…
você teria algo como:

MinhaClasse obj = modelo.getValue(minhaTabela.getSelectedRow());

que retornaria o objeto inteiro da linha selecionada na tabela…

Marky.Vasconcelos

É… meu TableModel faz exatamente isso, mas é interessante as pessoas entenderem como os dados vão parar na JTable através do TableModel. Depois disso seria interessante usar essa solução mais flexivel e genérica.
A maioria das pessoas quando aprendem a fazer o TableModel começam a fazer um TableModel para cada entidade que criam, depois de uns 20 isso começa ficar chato, eu escrevi meu TableModel apenas uma vez (ta demoro bastante tempo mas foi só uma vez) e uso ele para todas entidades.

P

entaum, eu consegui resolver o problema…atraves do que o Mark passou pelo link…a duvida ainda eh de quando eu devo utilizar metodos do AbstractTableModel e da Jtable…nao consegui abstrair ainda qual a funcao especifica dos dois…

abracos

Criado 23 de março de 2010
Ultima resposta 24 de mar. de 2010
Respostas 7
Participantes 5