Problema com JTABLE!

2 respostas
G

Eaí GUJZeiros, beleza?

Bem, estou com vários problemas com JTable e acho que vou ter que criar meu próprio Model (como os moderadores sempre recomendam), pois; meu problema é o seguinte:

private class MeuJTableListener implements TableModelListener{

        public void tableChanged(TableModelEvent e) {
            int linha = e.getFirstRow();
            int coluna = e.getColumn();

            
            DefaultTableModel dm = (DefaultTableModel)e.getSource();
            dm.fireTableCellUpdated(linha, coluna);
            
        }

    }
}

Eu estou alterando o valor da Tabela, e dando um enter; porém ele dá um erro cabuloso:

Exception in thread "AWT-EventQueue-0" java.lang.StackOverflowError
at javax.swing.event.TableModelEvent.getFirstRow(TableModelEvent.java:162)
at view.TelaCadastro$MeuJTableListener.tableChanged(TelaCadastro.java:175)
at javax.swing.table.AbstractTableModel.fireTableChanged(AbstractTableModel.java:296)
at javax.swing.table.AbstractTableModel.fireTableCellUpdated(AbstractTableModel.java:275)
at view.TelaCadastro$MeuJTableListener.tableChanged(TelaCadastro.java:180)
at javax.swing.table.AbstractTableModel.fireTableChanged(AbstractTableModel.java:296)
at javax.swing.table.AbstractTableModel.fireTableCellUpdated(AbstractTableModel.java:275)
at view.TelaCadastro$MeuJTableListener.tableChanged(TelaCadastro.java:180)
. . .
as linhas

at javax.swing.table.AbstractTableModel.fireTableChanged(AbstractTableModel.java:296)
at javax.swing.table.AbstractTableModel.fireTableCellUpdated(AbstractTableModel.java:275)
at view.TelaCadastro$MeuJTableListener.tableChanged(TelaCadastro.java:180)

se repetem milhares de vezes....

Por fim, se eu REALMENTE tiver que fazer a minha TableModel, como eu faço para inicializar?

MinhaTabela tabela = new MinhaTabela(new String[] = {...}, new data = {...} )

?

Mas eu cairei num problema, pois a minha tabela é iniciada através de um método que lerá um XML, identificará usuários e irá inserir na tabela. Como fazer um método para inserir uma linha?

Obrigado!

2 Respostas

luiz_renato

Gabriel Lopes,

Dê uma olhada neste post o qual tem link’s que vão tem ajudar:
http://www.guj.com.br/java/257825-popular-jtable-com-dados-do-banco#1343632
Qualquer dúvida “tamos aí”.

G

Luiz Renato, muitíssimo obrigado; criei minha própria tabela, eu fiquei com preguiça no começo mas realmente vi que É A MELHOR COISA DO MUNDO você fazer sua própria tabela, direi isso para todos >D!!

PORÉM, Contudo, entretando:

Como eu faço para mudar o tamanho de cada coluna?

Antes eu fazia:

…getColumnModel().getColumn(0).setPrefered…

Como eu crio um columnModel?

Criado 10 de novembro de 2011
Ultima resposta 11 de nov. de 2011
Respostas 2
Participantes 2