Erro com Jtable

1 resposta
IsaelCoelho

estou tentando fazer uma consulta com uma jTable mais não estou conseguindo alguém pode me ajudar?

esse codigo é do evento da pesquisa

private void jButton3ActionPerformed(java.awt.event.ActionEvent evt) {                                         
        Banco b = new Banco();
        b.iniciaBanco();
        ManipulaDados md = new ManipulaDados();

        String serieprocura = serie2.getText();
        String turmaprocura = turma2.getText();
        String turnoprocura = turno2.getText();
        String anoprocura = ano2.getText();
        ResultSet rs = md.RetornaDados("SELECT * FROM aluno2 ");

        try {
            while (rs.next()) {
                if (rs.getString("serie").equals(serieprocura)
                        && rs.getString("turma").equals(turmaprocura)
                        && rs.getString("turno").equals(turnoprocura)
                        && rs.getString("ano").equals(anoprocura)) {
                    preencherJtable();
                    DefaultTableModel modelo = (DefaultTableModel) jTable1.getModel();
                    modelo.setNumRows(0);
                }

                while (rs.next()) {
                    modelo.addRow(new Objetc[]{rs.getString("id"),rs.getString("id")});
                    
                }

            }



        } catch (SQLException ex) {
            Logger.getLogger(inseri.class.getName()).log(Level.SEVERE, null, ex);
        }

    }

essa outra classe é do banco

package novo;

import com.mysql.jdbc.Statement;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;

public class Banco {

    private static Connection conn;
    private static ResultSet rs;
    private static PreparedStatement ps;
    private static Statement st;

    public Statement getSt() {
        return st;
    }

    public void iniciaBanco() {
        try {

            Class.forName("com.mysql.jdbc.Driver");
            //objeto responsavel pela conexao com o banco de dados
            conn = DriverManager.getConnection("jdbc:mysql://127.0.0.1/escola", "root", "");
            st = (Statement) conn.createStatement();
        } catch (Exception e) {
            System.out.println("erro de conexao ao banco");
        }
    }

    void cadastraPessoa (String Nome, String Nascimento, int Numero, int Ano, String Curso, int Serie, String Turno, String Turma, String Cidade, String UF, String Pai, String Mae, String Sexo) { //Maria
        try {
            iniciaBanco();
            try {
                String sql = "INSERT INTO aluno2 ( Nome, Nascimento, Numero, Ano, Curso, Serie, Turno, Turma, CidadeNascimento, UFNascimento, Pai, Mae, Sexo ) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?);";

                ps = conn.prepareStatement(sql);
                
                ps.setString(1, Nome);
                ps.setString(2, Nascimento);
                ps.setInt(3, Numero);
                ps.setInt(4, Ano);
                ps.setString(5, Curso);
                ps.setInt(6, Serie);
                ps.setString(7, Turno);
                ps.setString(8, Turma);
                ps.setString(9, Cidade);
                ps.setString(10, UF);
                ps.setString(11, Pai);
                ps.setString(12, Mae);
                ps.setString(13, Sexo);
                ps.execute();
            } catch (Exception e) {
                e.printStackTrace();
            }
        } catch (Exception e) {
            fechaBanco();
            e.printStackTrace();
        }
    }

    void fechaBanco() {
        try {
            conn.close();
        } catch (SQLException ex) {
            ex.printStackTrace();
        }
    }

}

1 Resposta

Onixx2

Amigo, a sua dúvida está muito vaga, não estou conseguindo compreender o que está dando errado ou o que você não está conseguindo fazer. Se for um erro posta a exceção para que possamos analisar. Eu acredito que seu problema seja para preencher a tabela, né isso ?! se não for posta também o método “preenchetabela”.
caso seja esse método. seria algo mais ou menos assim

private void preencheTabela (String[][] conteudo){

String[] tituloDasColunas = {“Nome”, “Nascimento”, “Ano”…};

modeloTabela.setDataVector(conteudo, tituloDasColunas);

tabela.validate();

}

observações:
1 - Assim como listas, a tabela em sí, não manipula os dados para fazer isso é necessario ter uma classe chamada defaultTableModel(acho que escreve assim) que no exemplo acima nomeei de “modeloTabela”

2 - o metodo “setDataVector” da classe defaultTablemodel é o responsável por mudar os valores da tabela mediaten aos parâmetros String[] e String[][], ou seja você deve passar como parâmetro um array de string onde cada elemento será o titulo de cada coluna de sua tabela, e o parâmetro String[][] é a matriz contendo os valores da tabela.

3 - as informações foram alteradas, mas não foram apresentadas pela tabela, para que as informações contidas no objeto modeloTabela sejam apresentado na tabela, utiliza-se o metodo da sua tabela chamado “validate”.

Criado 19 de março de 2011
Ultima resposta 19 de mar. de 2011
Respostas 1
Participantes 2