Fórum Preencher JTable usando recordeSet com duas tabelas. #405213
18/07/2011
0
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
Curtir tópico
+ 0Posts
19/07/2011
Davi Costa
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
Gostei + 0
19/07/2011
Nilo Souza
Gostei + 0
19/07/2011
Nilo Souza
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); }
}Gostei + 0
20/07/2011
Davi Costa
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
Gostei + 0
22/07/2011
Nilo Souza
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.
Gostei + 0
26/07/2011
Dyego Carmo
Tudo bem ? Resolvido o problema ?
Caso positivo, poderia fechar o chamado ?
Obrigadão !
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)