Pessoal, a questão é a seguinte: eu personalizei alguns componentes swing para a minha aplicação (especificamente JTextField , JFormattedTextField e JComboBox) e gostaria de saber se tem como colocar eles nas celulas da minha JTable. Ou seja cada celula ira apontar para uma instancia das classes filhas que eu criei…tem um tempinho que to procurando algo sobre mas ainda não achei.
Olhe aqui um exemplo.
http://java.sun.com/docs/books/tutorial/uiswing/components/table.html#combobox
Usei assim a uns tempos atrás…
TableColumn tb = "nomeDaTabela".getColumnModel().getColumn("númeroDaColunaQueVocêQuerColocarOComponente");
tb.setCellEditor(new DefaultCellEditor("nomeDoComponenteQueVocêFormatou"));
Na primera linha vc pega a coluna da tabela que vc quer alterar o modelo.
Na segunda vc edita a célula colocando o componente formatado.
Espero ter ajudado!
~abrass
Então, não é exatamente isso. Tipo as classes que eu criei implementão uma interface…quando o usuário acionar um determinado evento eu gostaria que algo assim acontece-se:
for (int i = 0; i < jTable1.getRowCount(); i++) {
for (int j = 0; j < jTable1.getColumnCount(); j++) {
Object valor = jTable1.getValueAt(i, j);
if (valor != null && !valor.toString().equals("")) {
//DatabaseField é uma interface
DatabaseField bf = (DatabaseField) ((DefaultCellEditor) jTable1.getColumnModel().getColumn(j).getCellEditor()).getComponent();
//operacoes com a interface
minhaLista.add(resultado);
}
}
}
A tabela que estou usando tem informações sobre pessoas, percorro todas as celulas e vou montando os objetos…mas queria usar alguns recursos dessa interface para melhorar o código…mas o problema é que no fim todos os valores nos objetos da lista são iguais…mais precisamente iguais ao da ultima linha.
Ou seja, eu tenho X objetos montados com os valores da ultima linha…nao existe algum metodo em algum celleditor tipo getComponent(i,j) ? Ou algo similar.
Obrigado pelas respostas.