Ref.: Preenchimento de JTable

2 respostas
P

Porque não consigo preencher minha JTable com 158.783 linhas segundo o código abaixo:

protected static JTable PreencheJTable(final JTable jT, final ResultSet rs) {
        try {
            Vector colunas = new Vector();  //Cabeçalho das colunas
            Vector linhas = new Vector();   //Registros da tabela
            while (rs.next()) {
                if (rs.isFirst()) {
                    for (int intContadorColunas = 1; intContadorColunas <= rs.getMetaData().getColumnCount(); intContadorColunas++) {
                        Vector parametrosColunas = new Vector();
                        
                        parametrosColunas.addElement(rs.getMetaData().getCatalogName(intContadorColunas));
                        parametrosColunas.addElement(rs.getMetaData().getColumnClassName(intContadorColunas));
                        parametrosColunas.addElement(rs.getMetaData().getColumnCount());
                        parametrosColunas.addElement(rs.getMetaData().getColumnDisplaySize(intContadorColunas));
                        parametrosColunas.addElement(rs.getMetaData().getColumnLabel(intContadorColunas));
                        parametrosColunas.addElement(rs.getMetaData().getColumnName(intContadorColunas));
                        parametrosColunas.addElement(rs.getMetaData().getColumnType(intContadorColunas));
                        parametrosColunas.addElement(rs.getMetaData().getColumnTypeName(intContadorColunas));
                        parametrosColunas.addElement(rs.getMetaData().getPrecision(intContadorColunas));
                        parametrosColunas.addElement(rs.getMetaData().getScale(intContadorColunas));
                        parametrosColunas.addElement(rs.getMetaData().getSchemaName(intContadorColunas));
                        parametrosColunas.addElement(rs.getMetaData().getTableName(intContadorColunas));

//                        System.out.println("getCatalogName - " + rs.getMetaData().getCatalogName(intContadorColunas));
//                        System.out.println("getColumnClassName - " + rs.getMetaData().getColumnClassName(intContadorColunas));
//                        System.out.println("getColumnCount - " + rs.getMetaData().getColumnCount());
//                        System.out.println("getColumnDisplaySize - " + rs.getMetaData().getColumnDisplaySize(intContadorColunas));
//                        System.out.println("getColumnLabel - " + rs.getMetaData().getColumnLabel(intContadorColunas));
//                        System.out.println("getColumnName - " + rs.getMetaData().getColumnName(intContadorColunas));
//                        System.out.println("getColumnType - " + rs.getMetaData().getColumnType(intContadorColunas));
//                        System.out.println("getColumnTypeName - " + rs.getMetaData().getColumnTypeName(intContadorColunas));
//                        System.out.println("getPrecision - " + rs.getMetaData().getPrecision(intContadorColunas));
//                        System.out.println("getScale - " + rs.getMetaData().getScale(intContadorColunas));
//                        System.out.println("getSchemaName - " + rs.getMetaData().getSchemaName(intContadorColunas));
//                        System.out.println("getTableName - " + rs.getMetaData().getTableName(intContadorColunas));
//                        System.out.println(" ========================================= ");

                        colunas.addElement(parametrosColunas);
                    }
                }
                
                Vector valoresColunas = new Vector();
                for (int intContadorLinhas = 1; intContadorLinhas <= rs.getMetaData().getColumnCount(); intContadorLinhas++) {
                    valoresColunas.addElement(FormataDado(rs.getObject(rs.getMetaData().getColumnName(intContadorLinhas))));
//                    System.out.println(rs.getObject(rs.getMetaData().getColumnName(intContadorLinhas)));
                }

                linhas.addElement(valoresColunas);
            }
            
            
            
            //Configura Tabela
            jT.setModel(new ModeloTabelaPadrao(linhas, colunas));
            //jT.setModel(new DefaultTableModel(linhas, colunas));
            jT.setColumnModel(new ModeloColunaTabelaPadrao(colunas));
            
            //Configura Tabela (Segundo bloco)
            jT.getTableHeader().setReorderingAllowed(false);
            jT.getTableHeader().setResizingAllowed(false);
            jT.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
            
//////////            //Configura tabela
//////////            jT.setCellSelectionEnabled(false);
//////////            jT.setColumnSelectionAllowed(false);
//////////            jT.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
//////////            jT.setAutoCreateColumnsFromModel(false);
//////////            jT.setSelectionModel(new DefaultListSelectionModel());
//////////
//////////            //Define o modelo da tabela
//////////            jT.setModel(new ModeloTabelaPadrao(linhas, colunas));
//////////
//////////            //Define o modelo das colunas da tabela
//////////            jT.setColumnModel(new ModeloColunaTabelaPadrao(colunas));
//////////
//////////            //
//////////            //jT.getTableHeader().setDefaultRenderer(CelulaCabecalhoTabela(jT.getTableHeader()));
//////////
//////////            //Define objeto da célula
//////////            jT.setDefaultRenderer(Object.class, new CelulaTabela());
            
        } catch (SQLException errorSQL) {
            JOptionPane.showMessageDialog(null, errorSQL.getMessage(), "Erro SQL", JOptionPane.ERROR_MESSAGE);
            errorSQL.printStackTrace();
        }
        
        return jT;
    }

A Propósito: Alguém tem um exemplo de JTable para BI?
Algo onde o usuário possa brincar com os dados nela apresentados.

DESDE  MUITO OBRIGADO.

2 Respostas

fabim

Leia os artigos aqui do GUJ sobre JTable, e depois volte aqui se tiver duvida ainda.

PS: Nao existe NENHUMA justificativa pra se jogar mais de 1000 registros numa JTable. Pagine a consulta ou obrigue o usuario a FILTRAR.

P

OK!

Cê tá dizendo!

Estou acatando.

Sabe onde encontro alguns objetos já prontos para consultas (BI)?

Valeu! estou analizando o documento.

Criado 14 de outubro de 2008
Ultima resposta 14 de out. de 2008
Respostas 2
Participantes 2