JTable não exibe resultado de consulta completamente

10 respostas
SandroSoftwares

Gente, bom dia!

Criei esta JTable na mão grande e gostaria que ela exibisse todos os meus resultados extraidos de uma consulta ao banco:

tenho 1000 clientes cadastrados mas a jtable só exibe 20.

Alguém pode me ajudar a exibir os 1000?

jTableConsultaClientes.setModel(new javax.swing.table.DefaultTableModel(
                new Object[][]{},
                new String[]{
                    "Seq.", "Cod.", "Cliente", "Mãe"
                }) {

            boolean[] canEdit = new boolean[]{
                false, false, false, true
            };

            @Override
            public boolean isCellEditable(int rowIndex, int columnIndex) {
                return canEdit[columnIndex];
            }
        });

        jTableConsultaClientes.setPreferredSize(new Dimension(750, 320));
        jScrollPane.setPreferredSize(new Dimension(750, 320));
        jScrollPane.setViewportView(jTableConsultaClientes);
        painelGeral.add(jScrollPane);

10 Respostas

mauricioadl

seu select esta certo?

o scrollpane esta aparecendo?

SandroSoftwares

mauricioadl,

o select:

public ResultSet getClientesCadastrados() throws SQLException {
        String sql = "Select idCliente, nomeCliente, mae from Clientes order by nomeCliente, mae";
        PreparedStatement stmt = conexao.prepareStatement(sql);

        ResultSet rs = stmt.executeQuery();
        return rs;

    }

aparece a tabela com a barrinha de rolagem mas só exibe 20, enquanto tenho 1000...

mauricioadl

poe o codigo onde vc esta inserindo as linhas na tabela.

SandroSoftwares

olha ai... mas eu acho que é algo que está faltando com relação a setBorder, layout... algo assim... eu geralmente não crio na mão, mas este precisei...

public void preencheJTable() {
        try {
            ClienteDao dao = new ClienteDao();
           

            ResultSet cliente = dao.getClientesCadastrados();
            jTableConsultaClientes.getColumnModel().getColumn(0).setPreferredWidth(20);
            jTableConsultaClientes.getColumnModel().getColumn(1).setPreferredWidth(20);
            jTableConsultaClientes.getColumnModel().getColumn(2).setPreferredWidth(300);
            jTableConsultaClientes.getColumnModel().getColumn(3).setPreferredWidth(250);

            modelo = (DefaultTableModel) jTableConsultaClientes.getModel();
            modelo.setNumRows(0);

            int cont = 0;
            while (cliente.next()) {
                 modelo.addRow(new Object[]{++cont, cliente.getInt("idCliente"), cliente.getString("nomeCliente"), cliente.getString("mae")});
            }
            cliente.close();
            dao.getClientesCadastrados().close();

        } catch (SQLException ex) {

        }

    }
mauricioadl

cara, aparentemente seu codigo esta perfeito, ou pelo menos eu nao vi nenhum erro.

ja fez um debug no laço while pra ver se ele esta rodando mais de 20 vezes?

SandroSoftwares

é uma boa opção… deixa-me ver…

SandroSoftwares

mandei imprimir o cont. imprimiu os 1000.

mauricioadl
SandroSoftwares:
Gente, bom dia!

Criei esta JTable na mão grande e gostaria que ela exibisse todos os meus resultados extraidos de uma consulta ao banco:

tenho 1000 clientes cadastrados mas a jtable só exibe 20.

Alguém pode me ajudar a exibir os 1000?

jTableConsultaClientes.setModel(new javax.swing.table.DefaultTableModel(
                new Object[][]{},
                new String[]{
                    "Seq.", "Cod.", "Cliente", "Mãe"
                }) {

            boolean[] canEdit = new boolean[]{
                false, false, false, true
            };

            @Override
            public boolean isCellEditable(int rowIndex, int columnIndex) {
                return canEdit[columnIndex];
            }
        });

        jTableConsultaClientes.setPreferredSize(new Dimension(750, 320)); // REMOVE ESSA LINHA PRA VER
        jScrollPane.setPreferredSize(new Dimension(750, 320));
        jScrollPane.setViewportView(jTableConsultaClientes);
        painelGeral.add(jScrollPane);

SandroSoftwares

mauricioadl

yesssssssssssssssssssssssssssssssss companheiro!

rsrsrsrs…

os 1000 agora!

Valeu!

mauricioadl

legal! mete um resolvido no topico.

[]'s

Criado 8 de dezembro de 2011
Ultima resposta 8 de dez. de 2011
Respostas 10
Participantes 2