Jpanel não atualiza [resolvido]

Bom dia pessoal.

Estou nervoso já com esta classe. Talvez alguem possa me ajudar
Estou usando uma tabela do tipo Jtable que, a princípio, receberá uma variavel modelo do tipo DefaultTableModel.
Pois bem. O BDfromJTable, que está em uma classe de consistência, utiliza o inserirdados() para alimentar o modelo.
O que eu preciso é que este tblconsulta(modelo) seja inserido no pnlconsultabasica, uma classe genérica, quando eu acessar o consulta().

Obs: Tentei dar um joptionpane do tblconsulta e ele está alimentando corretamente, porém no construtor ele não mostra.

Agradeco a ajuda…

public class ConsultaViews extends ConsultaBasica {

    public Statement sentenca;
    public ResultSet registros;
    public JTable tblConsulta;
    public ViewsPersiste vwPer = new ViewsPersiste();
    public DefaultTableModel modelo;
    public ResultSetMetaData metaData;

    public ConsultaViews() {

        setTitle("Consulta Caixa");

        super.cbxConsulta.removeAllItems();
        super.cbxConsulta.addItem("Lancamentos categoriaXmes");
        super.cbxConsulta.addItem("Total entradas/saidas");
        super.cbxConsulta.addItem("Lancamentos por dia da semana");
        super.cbxConsulta.addItem("Total entradas/saidas por dia da semana");
        super.cbxConsulta.addItem("10 maiores gastos");

        super.btnAlterar.setVisible(false);
        super.btnExcluir.setVisible(false);
        super.btnIncluir.setVisible(false);
        super.txtConsulta.setVisible(false);
        super.btnSelecao.setVisible(false);

        tblConsulta = new JTable(modelo);
        JScrollPane rolagemTabela = new JScrollPane(tblConsulta);
        pnlConsultaBasica.add(rolagemTabela, BorderLayout.CENTER);
    }

    public void inserirDados(ResultSet rs) {
        try {

            metaData = rs.getMetaData();

            // nome das colunhas
            String[] colunas = new String[metaData.getColumnCount()];

            for (int i = 0; i < colunas.length; i++) {
                colunas[i] = metaData.getColumnName(i + 1);

            }

            // cria um modelo
            modelo = new DefaultTableModel(colunas, 0);

            // preenche o modelo
            while (rs.next()) {

                // uma linha
                String[] linha = new String[colunas.length];

                // adiciona valores na linha
                for (int i = 0; i < colunas.length; i++) {
                    linha[i] = rs.getString(i + 1);
                }

                // adiciona a linha
                modelo.addRow(linha);
            }

            // seta o modelo na tabela

            tblConsulta.setModel(modelo);
            JOptionPane.showMessageDialog(null, tblConsulta);

        } catch (SQLException exc) {
            System.out.println(exc);
        }
    }

    @Override
    public void consultar() {
        if (super.cbxConsulta.getSelectedItem().equals("Lancamentos categoriaXmes")) {
            vwPer.BdFromJtable("LANCAMENTOSCATMES");
        }if(super.cbxConsulta.getSelectedItem().equals("Total entradas/saidas")){
            vwPer.BdFromJtable("TOTALES");
        }if(super.cbxConsulta.getSelectedItem().equals("Lancamentos por dia da semana")){
            vwPer.BdFromJtable("LANCAMENTOSDIASEMANA");
        }if(super.cbxConsulta.getSelectedItem().equals("Total entradas/saidas por dia da semana")){
            vwPer.BdFromJtable("TOTALESDIASEMANA");
        }if(super.cbxConsulta.getSelectedItem().equals("10 maiores gastos")){
            vwPer.BdFromJtable("10MAIORESGASTOS");
        }
    }
  1. Não use o DefaultTableModel;
  2. Crie suas próprias classes de negócio;
  3. Crie uma classe que carregue objetos da classe numa lista;
  4. Crie um modelo que use sua lista;
  5. Associe-o ao JTable.

E tudo isso é menos trabalhoso que usar o DefaultTableModel.

Amigo, não entendi direito o que você quer.

Acho que não entendi quando vi você dizendo que você estava usando um DefaultTableModel.

Dê uma olhada nesse post

Até!

É só uma tabela de consulta.
Pegar tudo que tem numa view, ou select e mostrar em uma tabela. Não irei alterar, só consultar.

O problema que estou tendo é que esta tabela simples não é inserida no super.painel. Isto porque no construtor ela fica em branco e, no inserir dados, fica alimentanda…

Obrigado pelas respostas.

Na última linha do inserir dados, se isso aí é um JPanel, chame o método repaint();

Nada de inserir.
Na verdade, o Jtable não mostra dados nenhum no construtor.

Muito obrigado pelas respostas

Olha só.
Ele está chamando excessão no momento que faço o .setmodel(modelo);

Exception in thread “AWT-EventQueue-0” java.lang.NullPointerException
at VO.ConsultaViews.consultar(ConsultaViews.java:53)

Use um depurador para ver porque a variável usada nessa linha está nula.

ViniGodoy e fabiozoroastro, obrigado pelas dicas.

Na verdade, não sei realmente o que estava acontecendo.
Joguei o inserir para a classe de consistência e fiz o método retornar um Tablemodel.

Catei ele e funcionou…

Obrigado…