Fórum Preencher JTable usando recordeSet com duas tabelas. #405213

18/07/2011

0

Colegas,estou com dificuldade preencher um Jtable pq pego valores em duas tabelas (Tabela e Gruposub)Como resultado o Jtable precisa mostrar os valores nas colunas id, Formulário, incluir, alterar, excluir, visualizar, imprimir.
o meto da minha classe grupoSubDao é:
public List<GrupoSub> getListGrupoSub() throws SQLException {        List<GrupoSub> toReturn = new LinkedList<GrupoSub>();        ResultSet rs = executeQuery("select gs.id_grupo,gs.id_tabela,g.nome,gs.incluir,gs.alterar,gs."                + "excluir,gs.visualizar,gs.imprimir from grupo_sub gs inner join grupo g on g.id_grupo = gs.id_grupo");        while (rs.next()) {            toReturn.add(populateGrupoInfoSub(rs));                    }        rs.close();        return toReturn;    }     

public static GrupoSub populateGrupoInfoSub(ResultSet rsSub) throws SQLException {               Grupo toReturn = new Grupo();        GrupoSub toReturnSub = new GrupoSub();        Tabela toReturnTable = new Tabela();                toReturn.setIdGrupo(rsSub.getInt("ID_GRUPO"));        toReturn.setNome(rsSub.getString("NOME"));                toReturnTable.setIdTabela(rsSub.getInt("ID_TABELA"));        toReturnTable.setFormulario(rsSub.getString("NOME"));                toReturn.setIdGrupo(rsSub.getInt("ID_GRUPO"));        toReturnSub.setTabela(rsSub.getInt("id_tabela"));        toReturnSub.setIncluir(rsSub.getString("incluir"));        toReturnSub.setAlterar(rsSub.getString("Alterar"));        toReturnSub.setExcluir(rsSub.getString("Excluir"));        toReturnSub.setVisualizar(rsSub.getString("Visualizar"));        toReturnSub.setImprimir(rsSub.getString("Imprimir"));        return toReturnSub;    }


Tentei preencher minha tabela usando o código:
 public void carregarTabela(){        try {            List<GrupoSub>GrupSubList = new GrupoDao().getListGrupoSub();                        tblGrupo.setModel(new MyTableModel(GrupoSub.class, GrupSubList, tblGrupo));                                                  } catch (SQLException ex) {            Logger.getLogger(frmCadGrupo.class.getName()).log(Level.SEVERE, null, ex);        }            }

Mas o resultado que as colunas id e formulário ficaram vazias. Me enrolei todo. Podem me dar uma ajuda de como usar o recordSet para preenhecer esse Jtable usando duas tabelas?Obrigado!!




Nilo Souza

Nilo Souza

Responder

Posts

19/07/2011

Davi Costa

Dica 1: vc pode deixar esse select mais legível e usar alias,vai ficar até mais fácil qdo for usar o resultSet, por exemplo:

ResultSet rs = executeQuery("select gs.id_grupo as grupo,gs.id_tabela as tabela ,g.nome as nome,gs.incluir as incluir,gs.alterar as alterar,gs."                + "excluir as excluir,gs.visualizar as visualizar ,gs.imprimir as imprimir from grupo_sub gs inner join grupo g on g.id_grupo = gs.id_grupo");

Desse modo vai ficar mais intuitivo e garantido ao recuperar(reparei que vc chama alguns valores mais de uma vez, há essa necessidade???):

        toReturn.setIdGrupo(rsSub.getInt("grupo"));        toReturn.setNome(rsSub.getString("nome"));                toReturnTable.setIdTabela(rsSub.getInt("tabela"));        toReturnTable.setFormulario(rsSub.getString("nome"));                //toReturn.setIdGrupo(rsSub.getInt("ID_GRUPO"));        toReturnSub.setTabela(rsSub.getInt("tabela"));        toReturnSub.setIncluir(rsSub.getString("incluir"));        toReturnSub.setAlterar(rsSub.getString("alterar"));        toReturnSub.setExcluir(rsSub.getString("excluir"));        toReturnSub.setVisualizar(rsSub.getString("eisualizar"));        toReturnSub.setImprimir(rsSub.getString("imprimir"));        return toReturnSub;


Não entendi tb pq vc tem setTabela e setIdTabela, sendo que os dois vc passava o mesma coluna vinda do banco, acho que seria interessante repensar isso aí.

Posta se possível a classe que possui o método carregarTabela() inteiro, pois vc usa variáveis globais de classe que não sabemos como foram declarados.

Espero ter ajudado

att Davi
Responder

Gostei + 0

19/07/2011

Nilo Souza

Caro Davi, mais uma vez obrigado! Farei o que sugeriu. Ainda tenho dificuldade em expressar de forma logica o penso, talvez por isso ficou meio confuso. Assim que chegar em casa prepararei e reenviarei o codigo. Bom trabalho.
Responder

Gostei + 0

19/07/2011

Nilo Souza

Caro Davi, mais uma vez obrigado! Farei o que sugeriu. Ainda tenho dificuldade em expressar de forma logica o penso, talvez por isso ficou meio confuso. Assim que chegar em casa prepararei e reenviarei o codigo. SetTabela e SetIDTabela usei pq ela é uma classe Tabela.java e quando fiz a classe no netbeans automaticamente, foi criado um campo na tabela GrupoSub, isso pq, no banco de dados a tabela grupoSub tem um campo chamado id_tabela que é um chave estrangeira. Então para pegar o valor da classe tive que instanciala. Mas como não sabia fazer, eu tirei o relacionamento das tabelas, e acabei deixando esse codigo ai, mas vou tirar, não tem mais necessidade de usa-lo. Fiz isso na tentativa de joga o nome do formulario no jtable. Os campos da Tabela chamada "Tabela" são ID_Tabela, Nome, Formulario" e no Jtable não aparecia o nome do formulario.   Bom trabalho.
Responder

Gostei + 0

19/07/2011

Nilo Souza


 

Davi, abaixo a classe que vc pediu. Um abraço!
package treinamento.forms;
import java.sql.SQLException;import java.util.List;import java.util.Vector;import java.util.logging.Level;import java.util.logging.Logger;import javax.swing.DefaultComboBoxModel;import javax.swing.JOptionPane;import javax.swing.table.DefaultTableModel;import treinamento.dao.GrupoDao;import treinamento.dao.GrupoSubDao;import treinamento.entidade.Grupo;import treinamento.entidade.GrupoSub;import treinamento.entidade.Tabela;import treinamento.funcoes.SingletonUtil;
/** * * @author nsouza */public class frmCadGrupo extends javax.swing.JDialog {        //Variavel para operação    String opr;       // Declarando um novo Grupo    GrupoDao grpDao = new GrupoDao();    GrupoSubDao grpsDao = new GrupoSubDao();       Grupo Grupo=  new Grupo();    GrupoSub GrpSub = new GrupoSub();        Integer Id_Grupo = null;                GrupoSub Lista;
    /** Creates new form frmCadGrupo */    public frmCadGrupo(java.awt.Frame parent, boolean modal) {        super(parent, modal);        initComponents();                carregarTabela();        CarregaCombo();    }
    /** This method is called from within the constructor to     * initialize the form.     * WARNING: Do NOT modify this code. The content of this method is     * always regenerated by the Form Editor.     */    @SuppressWarnings("unchecked")    // <editor-fold defaultstate="collapsed" desc="Generated Code">                              private void initComponents() {
        jPanel3 = new javax.swing.JPanel();        btnNovo = new javax.swing.JButton();        btnAlterar = new javax.swing.JButton();        btnConfirmar = new javax.swing.JButton();        btnCancelar = new javax.swing.JButton();        btnExcluir = new javax.swing.JButton();        btnFechar = new javax.swing.JButton();        jScrollPane1 = new javax.swing.JScrollPane();        tblGrupo = new javax.swing.JTable();        jPanel1 = new javax.swing.JPanel();        jLabel1 = new javax.swing.JLabel();        jPanel2 = new javax.swing.JPanel();        jLabel2 = new javax.swing.JLabel();        txtCodigo = new javax.swing.JTextField();        jLabel3 = new javax.swing.JLabel();        txtGrupo = new javax.swing.JTextField();        cbxFormulario = new javax.swing.JComboBox();        jLabel5 = new javax.swing.JLabel();        jcbIncluir = new javax.swing.JCheckBox();        jcbAlterar = new javax.swing.JCheckBox();        jcbExcluir = new javax.swing.JCheckBox();        jcbVisualizar = new javax.swing.JCheckBox();        jcbImprimir = new javax.swing.JCheckBox();        jPanel4 = new javax.swing.JPanel();        jComboBox1 = new javax.swing.JComboBox();        jLabel4 = new javax.swing.JLabel();        btnCarregaTudo = new javax.swing.JButton();        btnLiberarTudo = new javax.swing.JButton();        btnNegarTudo = new javax.swing.JButton();
        setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);        getContentPane().setLayout(null);
        jPanel3.setLayout(null);
        btnNovo.setIcon(new javax.swing.ImageIcon(getClass().getResource("/treinamento/imagem/add.png"))); // NOI18N        btnNovo.setText("Adicionar");        btnNovo.setToolTipText("Adicionar Registro");        btnNovo.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER);        btnNovo.setPreferredSize(new java.awt.Dimension(100, 40));        btnNovo.setVerifyInputWhenFocusTarget(false);        btnNovo.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM);        btnNovo.addActionListener(new java.awt.event.ActionListener() {            public void actionPerformed(java.awt.event.ActionEvent evt) {                btnNovoActionPerformed(evt);            }        });        jPanel3.add(btnNovo);        btnNovo.setBounds(10, 10, 106, 69);
        btnAlterar.setIcon(new javax.swing.ImageIcon(getClass().getResource("/treinamento/imagem/editar.png"))); // NOI18N        btnAlterar.setText("Alterar ");        btnAlterar.setToolTipText("Alterar Registro");        btnAlterar.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER);        btnAlterar.setPreferredSize(new java.awt.Dimension(100, 40));        btnAlterar.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM);        btnAlterar.addActionListener(new java.awt.event.ActionListener() {            public void actionPerformed(java.awt.event.ActionEvent evt) {                btnAlterarActionPerformed(evt);            }        });        jPanel3.add(btnAlterar);        btnAlterar.setBounds(120, 10, 100, 69);
        btnConfirmar.setIcon(new javax.swing.ImageIcon(getClass().getResource("/treinamento/imagem/salvar.png"))); // NOI18N        btnConfirmar.setText("Confirmar");        btnConfirmar.setToolTipText("Salvar registro");        btnConfirmar.setActionCommand("");        btnConfirmar.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER);        btnConfirmar.setPreferredSize(new java.awt.Dimension(100, 40));        btnConfirmar.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM);        btnConfirmar.addActionListener(new java.awt.event.ActionListener() {            public void actionPerformed(java.awt.event.ActionEvent evt) {                btnConfirmarActionPerformed(evt);            }        });        jPanel3.add(btnConfirmar);        btnConfirmar.setBounds(230, 10, 100, 69);
        btnCancelar.setIcon(new javax.swing.ImageIcon(getClass().getResource("/treinamento/imagem/botao_voltar.png"))); // NOI18N        btnCancelar.setText("Cancelar");        btnCancelar.setToolTipText("Cancelar Registro");        btnCancelar.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER);        btnCancelar.setPreferredSize(new java.awt.Dimension(100, 40));        btnCancelar.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM);        btnCancelar.addActionListener(new java.awt.event.ActionListener() {            public void actionPerformed(java.awt.event.ActionEvent evt) {                btnCancelarActionPerformed(evt);            }        });        jPanel3.add(btnCancelar);        btnCancelar.setBounds(340, 10, 100, 69);
        btnExcluir.setIcon(new javax.swing.ImageIcon(getClass().getResource("/treinamento/imagem/delete.png"))); // NOI18N        btnExcluir.setText("Excluir");        btnExcluir.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER);        btnExcluir.setPreferredSize(new java.awt.Dimension(100, 40));        btnExcluir.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM);        btnExcluir.addActionListener(new java.awt.event.ActionListener() {            public void actionPerformed(java.awt.event.ActionEvent evt) {                btnExcluirActionPerformed(evt);            }        });        jPanel3.add(btnExcluir);        btnExcluir.setBounds(450, 10, 100, 69);
        btnFechar.setIcon(new javax.swing.ImageIcon(getClass().getResource("/treinamento/imagem/botao_fechar.png"))); // NOI18N        btnFechar.setText("Fechar");        btnFechar.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER);        btnFechar.setPreferredSize(new java.awt.Dimension(100, 40));        btnFechar.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM);        btnFechar.addActionListener(new java.awt.event.ActionListener() {            public void actionPerformed(java.awt.event.ActionEvent evt) {                btnFecharActionPerformed(evt);            }        });        jPanel3.add(btnFechar);        btnFechar.setBounds(560, 10, 100, 69);
        getContentPane().add(jPanel3);        jPanel3.setBounds(10, 440, 670, 88);
        tblGrupo.setBorder(javax.swing.BorderFactory.createEtchedBorder());        tblGrupo.setModel(new javax.swing.table.DefaultTableModel(            new Object [][] {                {null, null, null, null, null, null, null, null},                {null, null, null, null, null, null, null, null},                {null, null, null, null, null, null, null, null},                {null, null, null, null, null, null, null, null}            },            new String [] {                "Title 1", "Title 2", "Title 3", "Title 4", "Title 5", "Title 6", "Title 7", "Title 8"            }        ) {            boolean[] canEdit = new boolean [] {                false, false, true, true, true, true, true, true            };
            public boolean isCellEditable(int rowIndex, int columnIndex) {                return canEdit [columnIndex];            }        });        tblGrupo.addMouseListener(new java.awt.event.MouseAdapter() {            public void mouseClicked(java.awt.event.MouseEvent evt) {                tblGrupoMouseClicked(evt);            }        });        tblGrupo.addFocusListener(new java.awt.event.FocusAdapter() {            public void focusGained(java.awt.event.FocusEvent evt) {                tblGrupoFocusGained(evt);            }        });        jScrollPane1.setViewportView(tblGrupo);
        getContentPane().add(jScrollPane1);        jScrollPane1.setBounds(20, 290, 670, 148);
        jPanel1.setBackground(new java.awt.Color(0, 0, 102));
        jLabel1.setFont(new java.awt.Font("DejaVu Sans", 3, 18));        jLabel1.setForeground(new java.awt.Color(255, 255, 255));        jLabel1.setText("CADASTRO DE GRUPOS");
        javax.swing.GroupLayout jPanel1Layout = new javax.swing.GroupLayout(jPanel1);        jPanel1.setLayout(jPanel1Layout);        jPanel1Layout.setHorizontalGroup(            jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)            .addGroup(jPanel1Layout.createSequentialGroup()                .addContainerGap()                .addComponent(jLabel1)                .addContainerGap(448, Short.MAX_VALUE))        );        jPanel1Layout.setVerticalGroup(            jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)            .addGroup(jPanel1Layout.createSequentialGroup()                .addComponent(jLabel1)                .addContainerGap(12, Short.MAX_VALUE))        );
        getContentPane().add(jPanel1);        jPanel1.setBounds(0, 0, 688, 34);
        jPanel2.setLayout(null);
        jLabel2.setText("Código:");        jPanel2.add(jLabel2);        jLabel2.setBounds(6, 12, 80, 15);        jPanel2.add(txtCodigo);        txtCodigo.setBounds(110, 10, 100, 27);
        jLabel3.setText("Formulário:");        jPanel2.add(jLabel3);        jLabel3.setBounds(10, 80, 100, 15);        jPanel2.add(txtGrupo);        txtGrupo.setBounds(110, 40, 360, 27);
        cbxFormulario.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "Item 1", "Item 2", "Item 3", "Item 4" }));        jPanel2.add(cbxFormulario);        cbxFormulario.setBounds(110, 70, 360, 25);
        jLabel5.setText("Grupo:");        jPanel2.add(jLabel5);        jLabel5.setBounds(10, 45, 70, 20);
        jcbIncluir.setText("Incluir");        jPanel2.add(jcbIncluir);        jcbIncluir.setBounds(20, 120, 90, 18);
        jcbAlterar.setText("Alterar");        jPanel2.add(jcbAlterar);        jcbAlterar.setBounds(150, 120, 90, 18);
        jcbExcluir.setText("Excluir");        jPanel2.add(jcbExcluir);        jcbExcluir.setBounds(290, 120, 100, 18);
        jcbVisualizar.setText("Visualizar");        jPanel2.add(jcbVisualizar);        jcbVisualizar.setBounds(410, 120, 110, 18);
        jcbImprimir.setText("Imprimir");        jPanel2.add(jcbImprimir);        jcbImprimir.setBounds(550, 120, 100, 18);
        getContentPane().add(jPanel2);        jPanel2.setBounds(20, 90, 670, 150);
        jPanel4.setLayout(null);
        jComboBox1.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "Item 1", "Item 2", "Item 3", "Item 4" }));        jPanel4.add(jComboBox1);        jComboBox1.setBounds(90, 10, 390, 25);
        jLabel4.setText("Pesquisa:");        jPanel4.add(jLabel4);        jLabel4.setBounds(6, 14, 61, 15);
        getContentPane().add(jPanel4);        jPanel4.setBounds(20, 40, 540, 40);
        btnCarregaTudo.setText("Carregar Tudo");        btnCarregaTudo.addActionListener(new java.awt.event.ActionListener() {            public void actionPerformed(java.awt.event.ActionEvent evt) {                btnCarregaTudoActionPerformed(evt);            }        });        getContentPane().add(btnCarregaTudo);        btnCarregaTudo.setBounds(330, 250, 120, 27);
        btnLiberarTudo.setText("Liberar Tudo");        btnLiberarTudo.addActionListener(new java.awt.event.ActionListener() {            public void actionPerformed(java.awt.event.ActionEvent evt) {                btnLiberarTudoActionPerformed(evt);            }        });        getContentPane().add(btnLiberarTudo);        btnLiberarTudo.setBounds(450, 250, 106, 27);
        btnNegarTudo.setText("Negar Tudo");        btnNegarTudo.addActionListener(new java.awt.event.ActionListener() {            public void actionPerformed(java.awt.event.ActionEvent evt) {                btnNegarTudoActionPerformed(evt);            }        });        getContentPane().add(btnNegarTudo);        btnNegarTudo.setBounds(560, 250, 120, 27);
        java.awt.Dimension screenSize = java.awt.Toolkit.getDefaultToolkit().getScreenSize();        setBounds((screenSize.width-718)/2, (screenSize.height-580)/2, 718, 580);    }// </editor-fold>                        
    private void btnNovoActionPerformed(java.awt.event.ActionEvent evt) {                                                // TODO add your handling code here:                opr = "I";        ativar();        txtCodigo.setText("0");}                                       
    private void btnAlterarActionPerformed(java.awt.event.ActionEvent evt) {                                                   // TODO add your handling code here:        opr = "U";                              if (tblGrupo.getSelectedRow() == -1){            JOptionPane.showMessageDialog(this, "Selecione um fornecedor para edição");            return;                    }                carregarCampos();        ativar();}                                          
    private void btnConfirmarActionPerformed(java.awt.event.ActionEvent evt) {                                                     // TODO add your handling code here:                if ("".equals(txtGrupo.getText())) {            JOptionPane.showMessageDialog(this, "Name is requeried");            txtGrupo.requestFocus();        }                int resp = JOptionPane.showConfirmDialog(this, "Are you sure ?", "Add new Animal", JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE);        if (resp == 2) {            return;        }                try {                        //Configura valores da classe Grupo            Grupo.setIdGrupo(Integer.parseInt(txtCodigo.getText()));            Grupo.setNome(txtGrupo.getText());            Grupo.setUsuario(SingletonUtil.getInstance().getUsuario().getIdusuario());            Grupo.setOpr(opr);            Grupo.setOpr(opr);                        grpDao.addGrupo(Grupo);                        limpaCampo();            desativar();            carregarTabela();                    } catch (Exception e) {                        JOptionPane.showMessageDialog(this, "Erro ao tentar adicionar um fornecedor, corriga os dados "                    + "e tente novamente !");                        Logger.getLogger(frmFornecedor.class.getName()).log(Level.SEVERE, null, e);            return;        }            }                                            
    private void btnCancelarActionPerformed(java.awt.event.ActionEvent evt) {                                                    // TODO add your handling code here:        desativar();        limpaCampo();}                                           
    private void btnExcluirActionPerformed(java.awt.event.ActionEvent evt) {                                                   // TODO add your handling code here:        opr = "D";        ativar();}                                          
    private void btnFecharActionPerformed(java.awt.event.ActionEvent evt) {                                                  // TODO add your handling code here:        this.dispose();}                                         
    private void tblGrupoMouseClicked(java.awt.event.MouseEvent evt) {                                              // TODO add your handling code here:        carregarCampos();}                                     
    private void tblGrupoFocusGained(java.awt.event.FocusEvent evt) {                                             // TODO add your handling code here:    }                                    
    private void btnCarregaTudoActionPerformed(java.awt.event.ActionEvent evt) {                                                       // TODO add your handling code here:         if ("".equals(txtGrupo.getText()) && "".equals(txtCodigo.getText())) {            JOptionPane.showMessageDialog(this, "Codido e Grupo são abrigatórios");            txtGrupo.requestFocus();        }else{                          inserirSubGrupo("Carregar");                      }                                       }                                              
    private void btnLiberarTudoActionPerformed(java.awt.event.ActionEvent evt) {                                                       // TODO add your handling code here:                if ("".equals(txtGrupo.getText()) && "".equals(txtCodigo.getText())) {            JOptionPane.showMessageDialog(this, "Codido e Grupo são abrigatórios");            txtGrupo.requestFocus();        }else{                          inserirSubGrupo("Permitir");                      }    }                                              
    private void btnNegarTudoActionPerformed(java.awt.event.ActionEvent evt) {                                                     // TODO add your handling code here:                if ("".equals(txtGrupo.getText()) && "".equals(txtCodigo.getText())) {            JOptionPane.showMessageDialog(this, "Codido e Grupo são abrigatórios");            txtGrupo.requestFocus();        }else{                          inserirSubGrupo("Negar");                      }    }                                            
    /**     * @param args the command line arguments     */    public static void main(String args[]) {        java.awt.EventQueue.invokeLater(new Runnable() {
            public void run() {                frmCadGrupo dialog = new frmCadGrupo(new javax.swing.JFrame(), true);                dialog.addWindowListener(new java.awt.event.WindowAdapter() {
                    public void windowClosing(java.awt.event.WindowEvent e) {                        System.exit(0);                    }                });                dialog.setVisible(true);            }        });    }    // Variables declaration - do not modify                         private javax.swing.JButton btnAlterar;    private javax.swing.JButton btnCancelar;    private javax.swing.JButton btnCarregaTudo;    private javax.swing.JButton btnConfirmar;    private javax.swing.JButton btnExcluir;    private javax.swing.JButton btnFechar;    private javax.swing.JButton btnLiberarTudo;    private javax.swing.JButton btnNegarTudo;    private javax.swing.JButton btnNovo;    private javax.swing.JComboBox cbxFormulario;    private javax.swing.JComboBox jComboBox1;    private javax.swing.JLabel jLabel1;    private javax.swing.JLabel jLabel2;    private javax.swing.JLabel jLabel3;    private javax.swing.JLabel jLabel4;    private javax.swing.JLabel jLabel5;    private javax.swing.JPanel jPanel1;    private javax.swing.JPanel jPanel2;    private javax.swing.JPanel jPanel3;    private javax.swing.JPanel jPanel4;    private javax.swing.JScrollPane jScrollPane1;    private javax.swing.JCheckBox jcbAlterar;    private javax.swing.JCheckBox jcbExcluir;    private javax.swing.JCheckBox jcbImprimir;    private javax.swing.JCheckBox jcbIncluir;    private javax.swing.JCheckBox jcbVisualizar;    private javax.swing.JTable tblGrupo;    private javax.swing.JTextField txtCodigo;    private javax.swing.JTextField txtGrupo;    // End of variables declaration                   
private void CarregaCombo() {        try {                                   List<Tabela> tabela = new GrupoDao().getTabela();            DefaultComboBoxModel cmb = new DefaultComboBoxModel(new Vector<Tabela>(tabela));            cbxFormulario.setModel(cmb);                    } catch (Exception e) {            JOptionPane.showMessageDialog(this, "Error loading data");            return;        }    }            public void carregarTabela(){        try {            List<GrupoSub>GrupSubList = new GrupoDao().getListGrupoSub();                        tblGrupo.setModel(new MyTableModel(GrupoSub.class, GrupSubList, tblGrupo));                                                  } catch (SQLException ex) {            Logger.getLogger(frmCadGrupo.class.getName()).log(Level.SEVERE, null, ex);        }            }        private void carregarCampos(){   try {                                    // Codigo para pegar o campo da tabela           Object campo =  tblGrupo.getValueAt(tblGrupo.getSelectedRow(),0);                       int campo1 = Integer.parseInt(campo.toString()) ;//Guarda o valor da coluna                      //Executa consulta para pegar os registro e carregar os campos           Lista = grpsDao.getGrupoSub(campo1);                       //txtCodigo.setText(""+Lista.getGrupo().getIdGrupo());            //txtGrupo.setText(Lista.getGrupo().getNome);                          jcbIncluir.setText(Lista.getIncluir());            jcbAlterar.setText(Lista.getAlterar());            jcbExcluir.setText(Lista.getExcluir());            jcbVisualizar.setText(Lista.getVisualizar());            jcbImprimir.setText(Lista.getImprimir());                                                                      } catch (SQLException ex) {            Logger.getLogger(frmFornecedor.class.getName()).log(Level.SEVERE, null, ex);        }    }            private void ativar(){       txtCodigo.setEnabled(true);     txtGrupo.setEnabled(true);     jcbIncluir.setEnabled(true);     jcbAlterar.setEnabled(true);     jcbExcluir.setEnabled(true);     jcbVisualizar.setEnabled(true);     jcbImprimir.setEnabled(true);     
     btnNovo.setEnabled(false);     btnAlterar.setEnabled(false);     btnConfirmar.setEnabled(true);     btnCancelar.setEnabled(true);     btnExcluir.setEnabled(false);    
}
private void desativar(){       txtCodigo.setEnabled(false);     txtGrupo.setEnabled(false);     jcbIncluir.setEnabled(false);     jcbAlterar.setEnabled(false);     jcbExcluir.setEnabled(false);     jcbVisualizar.setEnabled(false);     jcbImprimir.setEnabled(false);     
     btnNovo.setEnabled(true);     btnAlterar.setEnabled(true);     btnConfirmar.setEnabled(false);     btnCancelar.setEnabled(false);     btnExcluir.setEnabled(true);    
}
private void limpaCampo(){         txtCodigo.setText("");     txtGrupo.setText("");     jcbIncluir.setText("");     jcbAlterar.setText("");     jcbExcluir.setText("");     jcbVisualizar.setText("");     jcbImprimir.setText("");    }
private void inserirSubGrupo(String Opcao){    
    if( "Incluir".equals(Opcao)){                GrpSub.setId_grupo(Integer.parseInt(txtCodigo.getText()));            GrpSub.setTabela(cbxFormulario.getSelectedIndex());            GrpSub.setIncluir("N");            GrpSub.setAlterar("N");            GrpSub.setExcluir("N");            GrpSub.setVisualizar("N");             GrpSub.setImprimir("N");            GrpSub.setOpr("I");                         }else if ("Permitir".equals(Opcao)){     GrpSub.setId_grupo(Integer.parseInt(txtCodigo.getText()));            GrpSub.setTabela(cbxFormulario.getSelectedIndex());            GrpSub.setIncluir("S");            GrpSub.setAlterar("S");            GrpSub.setExcluir("S");            GrpSub.setVisualizar("S");             GrpSub.setImprimir("S");            GrpSub.setOpr("U");                           }else if("Negar".equals(Opcao)){        GrpSub.setId_grupo(Integer.parseInt(txtCodigo.getText()));            GrpSub.setTabela(cbxFormulario.getSelectedIndex());            GrpSub.setIncluir("N");            GrpSub.setAlterar("N");            GrpSub.setExcluir("N");            GrpSub.setVisualizar("N");             GrpSub.setImprimir("N");            GrpSub.setOpr("U");    }         grpDao.addGrupoSub(GrpSub);    }

}
Responder

Gostei + 0

20/07/2011

Davi Costa

Ok,vamos lá em uma variável sua tblGrupo, vc dá um setModel nele com um array de Object's nulos.
Fico um pouco confuso fazer a leitura do seu código.
Vc declara as variáveis em locais diferentes, tenta dar uma reorganizada nisso aí.
A respeito tb a nome de classe que inicia com Maiúsculo e variável com minúsculo (camelCase).
O que tb me intrigou foi que parece que vc usou JPA, para fazer o mapeamento do banco para as classes java e usa jdbc como persistência, me corrige se eu estiver errado.
Se issso estiver acontecendo vc vai ter que rever isso nem que seja uma app de aprendizado. Pq se vc está mapeando via JPA, seria interessante que vc usasse JPA e tb ele é mais orientado a objetos do que o uso do jdbc puro, resumindo suas do modelo sofreriam algumas alterações...

Aproveita e debuga tb para entendermelhor o que está acontecendo, daí vc não vai se perder,por exemplo em outro momento vc tb chama setModel naquela variável que eu havia citado que tal colocar um break em cada linha dessa e ver qual trecho é executado por último..

e por fim está dando alguma exception?

Att Davi
Responder

Gostei + 0

22/07/2011

Nilo Souza

Tentei simplificar ou me atrapalhar mais, rs.
Método para preencher a tabela, esta dando um erro. Tentei através do recordset pegar o registro no banco, mas não consegui.

 public void preencher_tabela()      {                    tblGrupo.getColumnModel().getColumn(0).setPreferredWidth(20);            tblGrupo.getColumnModel().getColumn(1).setPreferredWidth(20);            tblGrupo.getColumnModel().getColumn(2).setPreferredWidth(10);            tblGrupo.getColumnModel().getColumn(3).setPreferredWidth(20);            tblGrupo.getColumnModel().getColumn(4).setPreferredWidth(20);            tblGrupo.getColumnModel().getColumn(5).setPreferredWidth(10);           tblGrupo.getColumnModel().getColumn(6).setPreferredWidth(10);             DefaultTableModel modelo = (DefaultTableModel)tblGrupo.getModel();            modelo.setNumRows(0);              try            {               // Objeto conexao            GenericaDao objCon = null;                            ResultSet rs = objCon.executeQuery("select G.ID_GRUPO AS GRUPO, G.ID_TABELA AS TABELA,"                     + " G.INCLUIR AS INCLUIR,G.ALTERAR AS ALTERAR,G.EXCLUIR AS EXCLUIR,G.VISUALIZAR AS VISUALIZAR ,"                     + "G.IMPRIMIR  AS IMPRIMIR FROM "                     + "USUARIO U INNER join grupo_sub G ON G.id_grupo = U.id_grupo  "                     + "WHERE U.idusuario = 1  AND ID_TABELA = 1");                                                                      while(rs.next())                {                modelo.addRow(new Object []{consulta.getString("grupo"),                    consulta.getString("tabela"),                    consulta.getString("incluir"),                    consulta.getString("alterar"),                    consulta.getString("excluir"),                    consulta.getString("visualizar"),                    consulta.getString("imprimir"),});                  }                          }            catch(SQLException erro)            {                JOptionPane.showMessageDialog(null, "Erro ao listar na tabela");            }        }  

Classe Generica
package treinamento.dao;import java.sql.Connection;import java.sql.DriverManager;import java.sql.PreparedStatement;import java.sql.CallableStatement;import java.sql.ResultSet;import java.sql.SQLException;import java.sql.Statement;import java.util.logging.Level;import java.util.logging.Logger;


public abstract class GenericaDao {
     private static final long serialVersionUID = 1L;
    public Connection getConnection() {        try {                                   Class.forName("org.postgresql.Driver");           Connection cx = DriverManager.getConnection("jdbc:postgresql://localhost:5432/vendas","postgres","pglocal");                                           // Class.forName("org.firebirdsql.jdbc.FBDriver");          // Connection cx = DriverManager.getConnection("jdbc:firebirdsql:localhost:/var/lib/firebird/2.5/projeto/VENDAS.FDB","SYSDBA","masterkey");           //Connection cx = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:XE","nsouza","oralocal");
                      return cx;        } catch (Exception ex) {            Logger.getLogger(GenericaDao.class.getName()).log(Level.SEVERE, null, ex);            return null;        }    }
    public Statement getStatement() throws SQLException {               return getConnection().createStatement();                            }
    public PreparedStatement getPrepared(String st) throws SQLException {        return getConnection().prepareStatement(st);    }            public CallableStatement getCallableStatement(String st) throws SQLException{                        return getConnection().prepareCall(st);    }       //Executa comandos sql (Insert, update e delete)    public ResultSet executeQuery(String query,Object... params) throws SQLException {        PreparedStatement ps = getPrepared(query);        for (int i = 0; i < params.length; i++) {            ps.setObject(i+1, params[i]);        }        return ps.executeQuery();    }        //Executa procedure do banco de dados, firebir, postgresql e outros    public void executeProcedure(String query, Object... params) throws SQLException {        CallableStatement cs = getCallableStatement(query);        for (int i = 0; i < params.length; i++) {            try {                cs.setObject( i + 1, params[i]);            } catch (Exception e) {                System.out.println("Error to try " + i + " with value " + params[i]);            }        }         cs.execute();        cs.close();    }        public int executePrepered(String query,Object... params) throws SQLException {        PreparedStatement ps = getCallableStatement(query);        for (int i = 0; i < params.length; i++) {            try {            ps.setObject(i+1, params[i]);            } catch (Exception e) {                System.out.println("Error to try "+i+" with value "+params[i]);            }        }         int result = ps.executeUpdate();        ps.close();        return result;    }    
    public int executeCommand(String query,Object... params) throws SQLException {        PreparedStatement ps = getPrepared(query);        for (int i = 0; i < params.length; i++) {            try {            ps.setObject(i+1, params[i]);            } catch (Exception e) {                System.out.println("Error to try "+i+" with value "+params[i]);            }        }         int result = ps.executeUpdate();        ps.close();        return result;    }
  
}


Erro. (StackTrace)
Have no file for /usr/lib/jvm/java-6-sun-1.6.0.26/jre/lib/modules/jdk.boot.jarException in thread "AWT-EventQueue-0" java.lang.NullPointerException	at treinamento.forms.frmCadGrupo.preencher_tabela(frmCadGrupo.java:701)	at treinamento.forms.frmCadGrupo.<init>(frmCadGrupo.java:61)	at treinamento.forms.frmPrincipal.jMenuItem4ActionPerformed(frmPrincipal.java:209)	at treinamento.forms.frmPrincipal.access$400(frmPrincipal.java:17)	at treinamento.forms.frmPrincipal$5.actionPerformed(frmPrincipal.java:147)	at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1995)	at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2318)	at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:387)	at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:242)	at javax.swing.AbstractButton.doClick(AbstractButton.java:357)	at javax.swing.plaf.basic.BasicMenuItemUI.doClick(BasicMenuItemUI.java:809)	at javax.swing.plaf.basic.BasicMenuItemUI$Handler.mouseReleased(BasicMenuItemUI.java:850)	at java.awt.Component.processMouseEvent(Component.java:6288)	at javax.swing.JComponent.processMouseEvent(JComponent.java:3267)	at java.awt.Component.processEvent(Component.java:6053)	at java.awt.Container.processEvent(Container.java:2041)	at java.awt.Component.dispatchEventImpl(Component.java:4651)	at java.awt.Container.dispatchEventImpl(Container.java:2099)	at java.awt.Component.dispatchEvent(Component.java:4481)	at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4577)	at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4238)	at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4168)	at java.awt.Container.dispatchEventImpl(Container.java:2085)	at java.awt.Window.dispatchEventImpl(Window.java:2478)	at java.awt.Component.dispatchEvent(Component.java:4481)	at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:643)	at java.awt.EventQueue.access$000(EventQueue.java:84)	at java.awt.EventQueue$1.run(EventQueue.java:602)	at java.awt.EventQueue$1.run(EventQueue.java:600)	at java.security.AccessController.doPrivileged(Native Method)	at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:87)	at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:98)	at java.awt.EventQueue$2.run(EventQueue.java:616)	at java.awt.EventQueue$2.run(EventQueue.java:614)	at java.security.AccessController.doPrivileged(Native Method)	at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:87)	at java.awt.EventQueue.dispatchEvent(EventQueue.java:613)	at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269)	at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184)	at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:174)	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:169)	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161)	at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)

Colegas, sei que não é a melhor pratica da orientação a objetos. Mas foi o jeito que encontrei de preencher o JTable usando tabelas diferentes.
Responder

Gostei + 0

26/07/2011

Dyego Carmo

Opa !

Tudo bem ? Resolvido o problema ?

Caso positivo, poderia fechar o chamado ?

Obrigadão !


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar