Ajuda passagem de parametro!

11 respostas
joaolenosi

Bom dia, como eu fasso para passar a sql que estar no metodo verificaBG() para o carregarGruposProduto()
para que ele possa realizar a consulta, com a sql passada?

// ...

  private ArrayList<Object[]> gruposList;
    String sql = "";
    String grupo, tipo; 
    String str;
    String str1;
    
    public String verificaBG(){
       
    
    str = bg_grupo.getSelection().getActionCommand();
        
        if (str.equals("Produto")) 
           grupo = "0";
        else if (str.equals("Servico"))
           grupo = "1";
        else if (str.equals("ProdutoServico"))
           grupo = "2";
        else
           grupo = "";
        
        
     str1 = bg_tipo.getSelection().getActionCommand(); 
        
        if (str1.equals("Fisica")) 
           tipo = "0";
        else if (str1.equals("Juridica"))
           tipo = "1";
        else if (str1.equals("Outros"))
           tipo = "2";
        else
           tipo = "";
        
       // dtm.setRowCount(0);
        
        sql = "SELECT for_cd, for_nm, for_cpfcnpj FROM fornecedor "
            + " WHERE for_grp_cd LIKE '"+grupo+"%' AND for_tipo LIKE '"+tipo+"%' "
            + " AND for_nm LIKE '%"+tf_pesqNome.getText().toLowerCase()+"%' "
            + " AND for_cpfcnpj LIKE '%' AND for_uf LIKE '"+tf_uf.getText()+"%' ";
        
        System.out.println(sql);
    
        return sql;
    }  
  
    private Object[][] carregarGruposProduto() {
    gruposList = new ArrayList<>();
   
    
        try {
            PreparedStatement pstmt = Conexao.getConexao().prepareStatement(sql);
            ResultSet rs = pstmt.executeQuery();

            while (rs.next()) {
                Object[] object = new Object[3];

                object[0] = rs.getString("for_cd");
                object[1] = rs.getString("for_nm");
                object[2] = rs.getString("for_cpfcnpj");


                gruposList.add(object);
            }
        } catch (SQLException ex) {
        }

        Object[][] gruposArray = new Object[gruposList.size()][3];
        gruposArray = gruposList.toArray(gruposArray);

        return gruposArray;
    }
// ...

11 Respostas

R

No outro método cria uma String que recebe verificaBG();

Exemplo:

String sql = verificaBG();
Fellipex
public void algumMetodoQueChameOsDois(){
String sql = verificaBG();  
carregarGruposProduto(sql);
}

//códido do método carregarGruposProduto
 private Object[][] carregarGruposProduto(String sql) {  
   gruposList = new ArrayList<>();  
    
     
       try {  
           PreparedStatement pstmt = Conexao.getConexao().prepareStatement(sql);  
           ResultSet rs = pstmt.executeQuery(sql.toString());  
  
           while (rs.next()) {  
               Object[] object = new Object[3];  
  
               object[0] = rs.getString("for_cd");  
               object[1] = rs.getString("for_nm");  
               object[2] = rs.getString("for_cpfcnpj");  
  
  
               gruposList.add(object);  
           }  
       } catch (SQLException ex) {  
       }  
  
       Object[][] gruposArray = new Object[gruposList.size()][3];  
       gruposArray = gruposList.toArray(gruposArray);  
  
       return gruposArray;  
   }
joaolenosi

Certo, vou testar aqui!

joaolenosi

Eu fiz conforme mencionado, porem tá dando um erro na linha 256.
Tem uma lâmpada que informa o seguinte :
Alterar a assinatura do método de carregarGruposProduto(String sql) para carregarGruposProduto()

package gui.consultas;

import banco.BDConsultas;
import banco.Conexao;
import gui.custom.AJTextField;
import gui.custom.CustomFuncoes;
import gui.interfaces.Base;
import gui.layout.AJButton;
import gui.layout.AJDialog;
import gui.layout.AJTable;
import gui.movimentacao.ajustepreco.AjustePreco;
import gui.principal.BarraTarefasWListener;
import gui.principal.Cores;
import gui.principal.GUIFuncoes;
import gui.principal.Mae;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyEvent;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import javax.swing.AbstractAction;
import javax.swing.Action;
import javax.swing.ButtonGroup;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JDialog;
import javax.swing.JFormattedTextField;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JRadioButton;
import javax.swing.JScrollPane;
import javax.swing.JSeparator;
import javax.swing.JTable;
import javax.swing.JTextField;
import javax.swing.KeyStroke;
import javax.swing.SwingConstants;
import javax.swing.border.Border;
import javax.swing.border.EmptyBorder;
import javax.swing.table.DefaultTableModel;
import javax.swing.text.DefaultFormatterFactory;
import net.miginfocom.swing.MigLayout;
/*
 * @author JOHN LENO
 */
public final class ConsultaFornecedores extends JDialog implements Base, BDConsultas {
    
    private JTextField          tf_codFornecedor;
    private AJTextField         tf_pesqNome;
    private AJTextField          tf_uf;
    
    private JFormattedTextField ft_cpf;   
    private JLabel              lb_grupo;
    private JLabel              lb_tipo;
    private JLabel              lb_nome;
    private JLabel              lb_tipoPessoa;
    private JLabel              lb_cpf;
    private JLabel              lb_uf;
    
    private JSeparator          js_grupo;
    private JSeparator          js_tipo;
    private JSeparator          js_vert;
    private JSeparator          js_tipoFP;
    
    private JRadioButton        rb_produto;
    private JRadioButton        rb_servico;
    private JRadioButton        rb_produtosServicos;
    private JRadioButton        rb_todos;
    private ButtonGroup         bg_grupo       = new ButtonGroup();
    
    private JRadioButton        rb_fisica;
    private JRadioButton        rb_juridica;
    private JRadioButton        rb_outros;
    private JRadioButton        rb_todosTipo;
    private ButtonGroup         bg_tipo        = new ButtonGroup();
    
    private JRadioButton        rb_f; 
    private JRadioButton        rb_j;
    private ButtonGroup         bg_tipoPessoa  = new ButtonGroup();

    private AJButton            bt_atualizar;
    private AJButton            bt_ok;
    private AJButton            bt_cancelar;
    private ImageIcon           ii7;//Atualizar
    private ImageIcon           ii_ok;
    private ImageIcon           ii_cancelar;
    private JScrollPane         jsp;
    protected AJTable           jt;
    private DefaultTableModel   dtm;
    private EmptyBorder         margem1;
    private Border              border1;  
    
    private ArrayList<Object[]> gruposList;
    String sql = "";
    String grupo, tipo; 
    String str;
    String str1;
    
    public String verificaBG(){
       
    
    str = bg_grupo.getSelection().getActionCommand();
        
        if (str.equals("Produto")) 
           grupo = "0";
        else if (str.equals("Servico"))
           grupo = "1";
        else if (str.equals("ProdutoServico"))
           grupo = "2";
        else
           grupo = "";
        
        
     str1 = bg_tipo.getSelection().getActionCommand(); 
        
        if (str1.equals("Fisica")) 
           tipo = "0";
        else if (str1.equals("Juridica"))
           tipo = "1";
        else if (str1.equals("Outros"))
           tipo = "2";
        else
           tipo = "";
        
       // dtm.setRowCount(0);
        
        sql = "SELECT for_cd, for_nm, for_cpfcnpj FROM fornecedor "
            + " WHERE for_grp_cd LIKE '"+grupo+"%' AND for_tipo LIKE '"+tipo+"%' "
            + " AND for_nm LIKE '%"+tf_pesqNome.getText().toLowerCase()+"%' "
            + " AND for_cpfcnpj LIKE '%' AND for_uf LIKE '"+tf_uf.getText()+"%' ";
        
        System.out.println(sql);
    
        return sql;
    }  
    
    public void algumMetodoQueChameOsDois(){  
       String sql = verificaBG();    
       carregarGruposProduto(sql);  
    }  
  
    private Object[][] carregarGruposProduto(String sql) {
    gruposList = new ArrayList<>();
   
    sql = verificaBG();  
   //  sql = "SELECT for_cd, for_nm, for_cpfcnpj FROM fornecedor";
    
        try {
            PreparedStatement pstmt = Conexao.getConexao().prepareStatement(sql);
            ResultSet rs = pstmt.executeQuery();

            while (rs.next()) {
                Object[] object = new Object[3];

                object[0] = rs.getString("for_cd");
                object[1] = rs.getString("for_nm");
                object[2] = rs.getString("for_cpfcnpj");


                gruposList.add(object);
            }
        } catch (SQLException ex) {
        }

        Object[][] gruposArray = new Object[gruposList.size()][3];
        gruposArray = gruposList.toArray(gruposArray);

        return gruposArray;
    }

    
    @Override
    public void inicializarComponentes() {
        
        jt                   = new AJTable();
        jsp                  = new JScrollPane(jt);
        dtm                  = new DefaultTableModel(){
        @Override
        public boolean isCellEditable(int row, int column) {
                return false;
            }
        };
        
        lb_grupo             = new JLabel("Grupo");
        lb_tipo              = new JLabel("Tipo"); 
        lb_nome              = new JLabel("Digite parte do nome:");
        lb_tipoPessoa        = new JLabel("Tipo"); 
        lb_cpf               = new JLabel("CPF:");
        lb_uf                = new JLabel("UF:");
        tf_pesqNome          = new AJTextField(120);
        tf_uf                = new AJTextField(3);
        
        js_grupo             = new JSeparator();
        js_tipo              = new JSeparator();
        js_tipoFP            = new JSeparator();
        js_vert              = new JSeparator(SwingConstants.VERTICAL);
        
        rb_produto           = new JRadioButton("Produto");
        rb_servico           = new JRadioButton("Serviço");
        rb_produtosServicos  = new JRadioButton("Produtos e Serviços");
        rb_todos             = new JRadioButton("Todos",true); 
        //bg_grupo             = new ButtonGroup();
        
        rb_fisica            = new JRadioButton("Física");
        rb_juridica          = new JRadioButton("Jurídica");
        rb_outros            = new JRadioButton("Outros");
        rb_todosTipo         = new JRadioButton("Todos",true); 
        //bg_tipo              = new ButtonGroup();
        
        rb_f                 = new JRadioButton("Física",true);
        rb_j                 = new JRadioButton("Jurídica");
        //bg_tipoPessoa        = new ButtonGroup();
        
        ii7                  = new ImageIcon("recursos/imagens/icones/new/aplicar.png");
        ii_ok                = new ImageIcon("recursos/imagens/icones/aplicar.png");
        ii_cancelar          = new ImageIcon("recursos/imagens/icones/cancelar.png");
                
        bt_atualizar         = new AJButton("Atualizar",GUIFuncoes.getIcone(ii7 ,20,20));
        bt_ok                = new AJButton("Ok",GUIFuncoes.getIcone(ii_ok ,20,20));
        bt_cancelar          = new AJButton("Cancelar",GUIFuncoes.getIcone(ii_cancelar ,20,20));

    }

    @Override
    public void inserirPropriedadesComponentes() {
        
       String[] columnIdentifiers = {"Código", "Nome","CPF/CNPJ"};
      
       jt.setModel(dtm);
       dtm.setDataVector(carregarGruposProduto(), columnIdentifiers);
       jt.setAutoResizeMode(AJTable.AUTO_RESIZE_OFF);
       jt.getColumnModel().getColumn(0).setPreferredWidth(74);
       jt.getColumnModel().getColumn(1).setPreferredWidth(345); 
       jt.getColumnModel().getColumn(2).setPreferredWidth(150);  
       
       rb_produto         .setActionCommand("Produto");
       rb_servico         .setActionCommand("Servico");
       rb_produtosServicos.setActionCommand("ProdutoServico");
       rb_todos           .setActionCommand("Todos");
       
       rb_fisica          .setActionCommand("Fisica");
       rb_juridica        .setActionCommand("Juridica");
       rb_outros          .setActionCommand("Outros");
       rb_todosTipo       .setActionCommand("Todos");
       
       rb_f               .setActionCommand("F");
       rb_j               .setActionCommand("J");
       
       
       
       
       jt.addMouseListener(
                new MouseListener() {
                    @Override
                    public void mouseClicked(MouseEvent e) {
                        if (e.getClickCount() == 2) {
                            tf_codFornecedor.setText(jt.getValueAt(jt.getSelectedRow(), 0).toString());
                            ConsultaFornecedores.this.dispose();
                            tf_codFornecedor.requestFocus();
                        }
                    }

                    @Override
                    public void mousePressed(MouseEvent e) {
                        tf_codFornecedor.requestFocus();
                    }

                    @Override
                    public void mouseReleased(MouseEvent e) {
                        tf_codFornecedor.requestFocus();
                    }

                    @Override
                    public void mouseEntered(MouseEvent e) {
                        tf_codFornecedor.requestFocus();
                    }

                    @Override
                    public void mouseExited(MouseEvent e) {
                        tf_codFornecedor.requestFocus();
                    }
                });
         bt_atualizar.addActionListener(
                new ActionListener() {
                    @Override
                    public void actionPerformed(ActionEvent e) {
                        
                      
                        //  verificaBG();
                          //JOptionPane.showMessageDialog(null, "Grupo");
                    }
                });
       
       
        bt_ok.addActionListener(
                new ActionListener() {
                    @Override
                    public void actionPerformed(ActionEvent e) {
                        if (jt.getSelectedRow() != -1) {
                            tf_codFornecedor.setText(jt.getValueAt(jt.getSelectedRow(), 0).toString());
                            ConsultaFornecedores.this.dispose();
                        }
                    }
                });
       bt_ok.addActionListener(
                new ActionListener() {
                    @Override
                    public void actionPerformed(ActionEvent e) {
                   
                    }
                });
        
        
        bt_cancelar.addActionListener(
                new ActionListener() {
                    @Override
                    public void actionPerformed(ActionEvent e) {
                         ConsultaFornecedores.this.dispose();  
                    }
                });
        
        // Código para modificar o key binding para tecla ENTER.
         Action enter = new AbstractAction() {
            @Override
            public void actionPerformed(ActionEvent e) {
                tf_codFornecedor.setText(jt.getValueAt(jt.getSelectedRow(), 0).toString());
               
            }
        };
        jt.getInputMap(JTable.WHEN_ANCESTOR_OF_FOCUSED_COMPONENT).put(
                KeyStroke.getKeyStroke(KeyEvent.VK_ENTER, 0), "ENTER");
        jt.getActionMap().put("ENTER", enter);
    
       
        
       DefaultFormatterFactory factory = new DefaultFormatterFactory(CustomFuncoes.getCPFMask());
       ft_cpf = new JFormattedTextField(factory);
        
       rb_produto            .setBorder(null);
       rb_servico            .setBorder(null);
       rb_produtosServicos   .setBorder(null);
       rb_todos              .setBorder(null);
      
       rb_fisica             .setBorder(null);
       rb_juridica           .setBorder(null);
       rb_outros             .setBorder(null);
       rb_todosTipo          .setBorder(null);
       
       rb_f                  .setBorder(null);
       rb_j                  .setBorder(null);
              
       rb_produto            .setContentAreaFilled(false);
       rb_servico            .setContentAreaFilled(false);
       rb_produtosServicos   .setContentAreaFilled(false);
       rb_todos              .setContentAreaFilled(false);
       
       rb_fisica             .setContentAreaFilled(false);
       rb_juridica           .setContentAreaFilled(false);
       rb_outros             .setContentAreaFilled(false);
       rb_todosTipo          .setContentAreaFilled(false);
       
       rb_f                  .setContentAreaFilled(false);
       rb_j                  .setContentAreaFilled(false);
         
       lb_grupo              .setForeground(Cores.AZUL_12); 
       lb_tipo               .setForeground(Cores.AZUL_12);
       lb_tipoPessoa         .setForeground(Cores.AZUL_12);
       lb_cpf                .setForeground(Cores.AZUL_12);
       lb_uf                 .setForeground(Cores.AZUL_12);
       
       bt_ok                 .setMaximumSize(new Dimension(100,25));
       bt_atualizar          .setMaximumSize(new Dimension(100,25));
       bt_cancelar           .setMaximumSize(new Dimension(100,25));
               
       bt_ok                 = GUIFuncoes.aplicarLayout(bt_ok, margem1);
       bt_atualizar          = GUIFuncoes.aplicarLayout(bt_atualizar, margem1);
       bt_cancelar           = GUIFuncoes.aplicarLayout(bt_cancelar, margem1);
            
       
       this.getContentPane().setBackground(Color.WHITE);
       this.setModal(true);
       this.setLayout(new MigLayout("", "[180][10][20][30][grow]", "[][]0[]0[]0[][][]"));  
   
    }

    @Override
    public void inserirComponentes() {
        this.add(lb_grupo,"spanx 1, split 2");
        this.add(js_grupo,"w 130!");
        this.add(lb_tipo,"spanx 1, split 2");
        this.add(js_tipo,"w 130!, wrap");
        
        this.add(rb_produto, "w 90!, left");
        this.add(rb_fisica, "left, wrap");
        this.add(rb_servico, "w 90!");
        this.add(rb_juridica, "w 90!, wrap");
        this.add(rb_produtosServicos, "w 150!");
        this.add(rb_outros, "w 150!, wrap");
        this.add(rb_todos, "w 90!");
        this.add(rb_todosTipo, "w 90!, wrap");
        this.add(lb_nome,"grow");
        this.add(lb_tipoPessoa,"gapleft 5, w 30!, split 2");
        this.add(js_tipoFP,"w 115!");
        this.add(lb_cpf,"w 80!");
        this.add(lb_uf,"w 30!,wrap");
        this.add(tf_pesqNome,"grow");
        
        this.add(rb_f,"gapleft 5, w 70!, split 2");
        this.add(rb_j,"grow");
        this.add(ft_cpf,"w 100!");
        this.add(tf_uf,"w 30!");
        this.add(bt_atualizar,"w 115!,wrap 2");
        this.add(jsp, "gaptop 5, span, growx, wrap");
        this.add(bt_ok,"gaptop 5,spanx 5, w 110!, split2, right");
        this.add(bt_cancelar,"gaptop 5,w 110!, right, wrap, gapright 7");
        
        bg_grupo.add(rb_produto);
        bg_grupo.add(rb_servico);
        bg_grupo.add(rb_produtosServicos);
        bg_grupo.add(rb_todos);
        
        bg_tipo.add(rb_fisica);
        bg_tipo.add(rb_juridica);
        bg_tipo.add(rb_outros);
        bg_tipo.add(rb_todosTipo);
        
        bg_tipoPessoa.add(rb_f);
        bg_tipoPessoa.add(rb_j);
    }
    
    public ConsultaFornecedores(AJDialog owner, JTextField tf_codFornecedor){
        super(owner);
        this.tf_codFornecedor = tf_codFornecedor;
        this.setTitle("Consulta Fornecedor");
        this.setSize(610, 375);
        this.setLocationRelativeTo(null);
        this.setResizable(false);
       
        System.out.println("Instanciou Fornecedores");
   

        inicializarComponentes();
        inserirPropriedadesComponentes();
        inserirComponentes();
        this.setVisible(true);
        
    }
    
}
R

VOce ta fazendo algo que nao precisa.

public void algumMetodoQueChameOsDois(){    
       String sql = verificaBG();      
       carregarGruposProduto(sql);    
    }    
    
    private Object[][] carregarGruposProduto(String sql) {  
    gruposList = new ArrayList<>();  
     
    sql = verificaBG();

Retira o sql = verificaBG(); do metodo carregarGruposProdutos, e onde voce chama esse metodo, so trocar para algumMetodoQueChameOsDois, que ja tem as chamadas dos 2 metodos.

joaolenosi

rof20004 , beleza troquei e vi que realmente estar passando a sql por paramentro corretamente, porem o meu jtable tá vindo sem nenhum registro, tipo que nem tivesse fechado.

Sql passada por parametro : SQL 1 = SELECT for_cd, for_nm, for_cpfcnpj FROM fornecedor  WHERE for_grp_cd LIKE '%' AND for_tipo LIKE '%'  AND for_nm LIKE '%%'  AND for_cpfcnpj LIKE '%' AND for_uf LIKE '%'

Já fiz uma consulta desse mesmo jeito no banco e vi que me retorna uma infinidade de dados, mas na aplicação não tá apareçendo nenhum registro!
Tem idéia do que pode ser?

joaolenosi

Olhe a imagem aê, como tá vindo o Jtable !

R

Acho que é porque voce nao seta nada no seu jTable :smiley:

o metodo que adiciona os valores no JTable é addRow, por ai, hehehe.

joaolenosi

Estou setando os valores para dentro de um arrayList!
Vou tentar desvendar esse mistério.

R

Sim, voce seta o gruposArray, mas nao seta o gruposArray na tabela. Eu quando preencho a tabela nao uso array, eu uso o Proprio Objeto, acho mais pratico e limpo.

joaolenosi

Já resolvi o problema, acho que não estava apareçendo nada no meu Jtable, por que eu não estava chamando as propriedade do Jtable!

Vou deixar o fonte aqui, caso alguém um dia precise!

package gui.consultas;

import banco.BDConsultas;
import banco.Conexao;
import gui.custom.AJTextField;
import gui.custom.CustomFuncoes;
import gui.interfaces.Base;
import gui.layout.AJButton;
import gui.layout.AJDialog;
import gui.layout.AJTable;
import gui.movimentacao.ajustepreco.AjustePreco;
import gui.principal.BarraTarefasWListener;
import gui.principal.Cores;
import gui.principal.GUIFuncoes;
import gui.principal.Mae;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyEvent;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import javax.swing.AbstractAction;
import javax.swing.Action;
import javax.swing.ButtonGroup;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JDialog;
import javax.swing.JFormattedTextField;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JRadioButton;
import javax.swing.JScrollPane;
import javax.swing.JSeparator;
import javax.swing.JTable;
import javax.swing.JTextField;
import javax.swing.KeyStroke;
import javax.swing.SwingConstants;
import javax.swing.border.Border;
import javax.swing.border.EmptyBorder;
import javax.swing.table.DefaultTableModel;
import javax.swing.text.DefaultFormatterFactory;
import net.miginfocom.swing.MigLayout;
/*
 * @author JOHN LENO
 */
public final class ConsultaFornecedores extends JDialog implements Base, BDConsultas {
    
    private JTextField          tf_codFornecedor;
    private AJTextField         tf_pesqNome;
    private AJTextField          tf_uf;
    
    private JFormattedTextField ft_cpf;   
    private JLabel              lb_grupo;
    private JLabel              lb_tipo;
    private JLabel              lb_nome;
    private JLabel              lb_tipoPessoa;
    private JLabel              lb_cpf;
    private JLabel              lb_uf;
    
    private JSeparator          js_grupo;
    private JSeparator          js_tipo;
    private JSeparator          js_vert;
    private JSeparator          js_tipoFP;
    
    private JRadioButton        rb_produto;
    private JRadioButton        rb_servico;
    private JRadioButton        rb_produtosServicos;
    private JRadioButton        rb_todos;
    private ButtonGroup         bg_grupo       = new ButtonGroup();
    
    private JRadioButton        rb_fisica;
    private JRadioButton        rb_juridica;
    private JRadioButton        rb_outros;
    private JRadioButton        rb_todosTipo;
    private ButtonGroup         bg_tipo        = new ButtonGroup();
    
    private JRadioButton        rb_f; 
    private JRadioButton        rb_j;
    private ButtonGroup         bg_tipoPessoa  = new ButtonGroup();

    private AJButton            bt_atualizar;
    private AJButton            bt_ok;
    private AJButton            bt_cancelar;
    private ImageIcon           ii7;//Atualizar
    private ImageIcon           ii_ok;
    private ImageIcon           ii_cancelar;
    private JScrollPane         jsp;
    protected AJTable           jt;
    private DefaultTableModel   dtm;
    private EmptyBorder         margem1;
    private Border              border1;  
    
    private ArrayList<Object[]> gruposList;
    String sql = "";
    String grupo, tipo; 
    String str;
    String str1;
    String sql1;
    
    public String verificaBG(){
         
    str = bg_grupo.getSelection().getActionCommand();
        
        if (str.equals("Produto")) 
           grupo = "0";
        else if (str.equals("Servico"))
           grupo = "1";
        else if (str.equals("ProdutoServico"))
           grupo = "2";
        else
           grupo = "";
        
        
     str1 = bg_tipo.getSelection().getActionCommand(); 
        
        if (str1.equals("Fisica")) 
           tipo = "0";
        else if (str1.equals("Juridica"))
           tipo = "1";
        else if (str1.equals("Outros"))
           tipo = "2";
        else
           tipo = "";
            
        sql = "SELECT for_cd, for_nm, for_cpfcnpj FROM fornecedor "
            + " WHERE for_grp_cd LIKE '"+grupo+"%' AND for_tipo LIKE '"+tipo+"%' "
            + " AND for_nm LIKE '%"+tf_pesqNome.getText().toLowerCase()+"%' "
            + " AND for_cpfcnpj LIKE '%' AND for_uf LIKE '"+tf_uf.getText()+"%' ";
        
   
        return sql;
    }  
    
    public void atualizarLista(){  
       sql1 = verificaBG();    
       carregarGruposProduto(sql1);  
       propriedadesTable();
     
    }  
  
    private Object[][] carregarGruposProduto(String sql1) {
    gruposList = new ArrayList<>();
     
   // sql1 = "SELECT for_cd, for_nm, for_cpfcnpj FROM fornecedor";
    
        try {
            PreparedStatement pstmt = Conexao.getConexao().prepareStatement(sql1);
            ResultSet rs = pstmt.executeQuery();

            while (rs.next()) {
                Object[] object = new Object[3];

                object[0] = rs.getString("for_cd");
                object[1] = rs.getString("for_nm");
                object[2] = rs.getString("for_cpfcnpj");


                gruposList.add(object);
            }
        } catch (SQLException ex) {
        }

        
        Object[][] gruposArray = new Object[gruposList.size()][3];
        gruposArray = gruposList.toArray(gruposArray);
        
  
        return gruposArray;
    }
    
    public void propriedadesTable(){
       String[] columnIdentifiers = {"Código","Nome","CPF/CNPJ"};
      
       jt.setModel(dtm);
       dtm.setDataVector(carregarGruposProduto(sql1), columnIdentifiers);
       System.out.println("Propriedades = "+sql1);
              
       jt.setAutoResizeMode(AJTable.AUTO_RESIZE_OFF);
       jt.getColumnModel().getColumn(0).setPreferredWidth(74);
       jt.getColumnModel().getColumn(1).setPreferredWidth(345); 
       jt.getColumnModel().getColumn(2).setPreferredWidth(150); 
    }

    
    @Override
    public void inicializarComponentes() {
        
               
        jt                   = new AJTable();
        jsp                  = new JScrollPane(jt);
        dtm                  = new DefaultTableModel(){
        @Override
        public boolean isCellEditable(int row, int column) {
                return false;
            }
        };
        

        lb_grupo             = new JLabel("Grupo");
        lb_tipo              = new JLabel("Tipo"); 
        lb_nome              = new JLabel("Digite parte do nome:");
        lb_tipoPessoa        = new JLabel("Tipo"); 
        lb_cpf               = new JLabel("CPF:");
        lb_uf                = new JLabel("UF:");
        tf_pesqNome          = new AJTextField(120);
        tf_uf                = new AJTextField(3);
        
        js_grupo             = new JSeparator();
        js_tipo              = new JSeparator();
        js_tipoFP            = new JSeparator();
        js_vert              = new JSeparator(SwingConstants.VERTICAL);
        
        rb_produto           = new JRadioButton("Produto");
        rb_servico           = new JRadioButton("Serviço");
        rb_produtosServicos  = new JRadioButton("Produtos e Serviços");
        rb_todos             = new JRadioButton("Todos",true); 
        //bg_grupo             = new ButtonGroup();
        
        rb_fisica            = new JRadioButton("Física");
        rb_juridica          = new JRadioButton("Jurídica");
        rb_outros            = new JRadioButton("Outros");
        rb_todosTipo         = new JRadioButton("Todos",true); 
        //bg_tipo              = new ButtonGroup();
        
        rb_f                 = new JRadioButton("Física",true);
        rb_j                 = new JRadioButton("Jurídica");
        //bg_tipoPessoa        = new ButtonGroup();
        
        ii7                  = new ImageIcon("recursos/imagens/icones/new/aplicar.png");
        ii_ok                = new ImageIcon("recursos/imagens/icones/aplicar.png");
        ii_cancelar          = new ImageIcon("recursos/imagens/icones/cancelar.png");
                
        bt_atualizar         = new AJButton("Atualizar",GUIFuncoes.getIcone(ii7 ,20,20));
        bt_ok                = new AJButton("Ok",GUIFuncoes.getIcone(ii_ok ,20,20));
        bt_cancelar          = new AJButton("Cancelar",GUIFuncoes.getIcone(ii_cancelar ,20,20));

    }
    
  
    @Override
    public void inserirPropriedadesComponentes() {
        
      String[] columnIdentifiers = {"Código","Nome","CPF/CNPJ"};
      
       jt.setModel(dtm);
       dtm.setDataVector(carregarGruposProduto(sql1), columnIdentifiers);
       System.out.println("Propriedades = "+sql1);
              
       jt.setAutoResizeMode(AJTable.AUTO_RESIZE_OFF);
       jt.getColumnModel().getColumn(0).setPreferredWidth(74);
       jt.getColumnModel().getColumn(1).setPreferredWidth(345); 
       jt.getColumnModel().getColumn(2).setPreferredWidth(150); 
       
       rb_produto         .setActionCommand("Produto");
       rb_servico         .setActionCommand("Servico");
       rb_produtosServicos.setActionCommand("ProdutoServico");
       rb_todos           .setActionCommand("Todos");
       
       rb_fisica          .setActionCommand("Fisica");
       rb_juridica        .setActionCommand("Juridica");
       rb_outros          .setActionCommand("Outros");
       rb_todosTipo       .setActionCommand("Todos");
       
       rb_f               .setActionCommand("F");
       rb_j               .setActionCommand("J");
       
       
    
       jt.addMouseListener(
                new MouseListener() {
                    @Override
                    public void mouseClicked(MouseEvent e) {
                        if (e.getClickCount() == 2) {
                            tf_codFornecedor.setText(jt.getValueAt(jt.getSelectedRow(), 0).toString());
                            ConsultaFornecedores.this.dispose();
                            tf_codFornecedor.requestFocus();
                        }
                    }

                    @Override
                    public void mousePressed(MouseEvent e) {
                        tf_codFornecedor.requestFocus();
                    }

                    @Override
                    public void mouseReleased(MouseEvent e) {
                        tf_codFornecedor.requestFocus();
                    }

                    @Override
                    public void mouseEntered(MouseEvent e) {
                        tf_codFornecedor.requestFocus();
                    }

                    @Override
                    public void mouseExited(MouseEvent e) {
                        tf_codFornecedor.requestFocus();
                    }
                });
         bt_atualizar.addActionListener(
                new ActionListener() {
                    @Override
                    public void actionPerformed(ActionEvent e) {
                         atualizarLista();
                        //  verificaBG();
                          //JOptionPane.showMessageDialog(null, "Grupo");
                    }
                });
       
       
        bt_ok.addActionListener(
                new ActionListener() {
                    @Override
                    public void actionPerformed(ActionEvent e) {
                        if (jt.getSelectedRow() != -1) {
                            tf_codFornecedor.setText(jt.getValueAt(jt.getSelectedRow(), 0).toString());
                            ConsultaFornecedores.this.dispose();
                        }
                    }
                });
       bt_ok.addActionListener(
                new ActionListener() {
                    @Override
                    public void actionPerformed(ActionEvent e) {
                   
                    }
                });
        
        
        bt_cancelar.addActionListener(
                new ActionListener() {
                    @Override
                    public void actionPerformed(ActionEvent e) {
                         ConsultaFornecedores.this.dispose();  
                    }
                });
        
        // Código para modificar o key binding para tecla ENTER.
         Action enter = new AbstractAction() {
            @Override
            public void actionPerformed(ActionEvent e) {
                tf_codFornecedor.setText(jt.getValueAt(jt.getSelectedRow(), 0).toString());
               
            }
        };
        jt.getInputMap(JTable.WHEN_ANCESTOR_OF_FOCUSED_COMPONENT).put(
                KeyStroke.getKeyStroke(KeyEvent.VK_ENTER, 0), "ENTER");
        jt.getActionMap().put("ENTER", enter);
    
       
        
       DefaultFormatterFactory factory = new DefaultFormatterFactory(CustomFuncoes.getCPFMask());
       ft_cpf = new JFormattedTextField(factory);
        
       rb_produto            .setBorder(null);
       rb_servico            .setBorder(null);
       rb_produtosServicos   .setBorder(null);
       rb_todos              .setBorder(null);
      
       rb_fisica             .setBorder(null);
       rb_juridica           .setBorder(null);
       rb_outros             .setBorder(null);
       rb_todosTipo          .setBorder(null);
       
       rb_f                  .setBorder(null);
       rb_j                  .setBorder(null);
              
       rb_produto            .setContentAreaFilled(false);
       rb_servico            .setContentAreaFilled(false);
       rb_produtosServicos   .setContentAreaFilled(false);
       rb_todos              .setContentAreaFilled(false);
       
       rb_fisica             .setContentAreaFilled(false);
       rb_juridica           .setContentAreaFilled(false);
       rb_outros             .setContentAreaFilled(false);
       rb_todosTipo          .setContentAreaFilled(false);
       
       rb_f                  .setContentAreaFilled(false);
       rb_j                  .setContentAreaFilled(false);
         
       lb_grupo              .setForeground(Cores.AZUL_12); 
       lb_tipo               .setForeground(Cores.AZUL_12);
       lb_tipoPessoa         .setForeground(Cores.AZUL_12);
       lb_cpf                .setForeground(Cores.AZUL_12);
       lb_uf                 .setForeground(Cores.AZUL_12);
       
       bt_ok                 .setMaximumSize(new Dimension(100,25));
       bt_atualizar          .setMaximumSize(new Dimension(100,25));
       bt_cancelar           .setMaximumSize(new Dimension(100,25));
               
       bt_ok                 = GUIFuncoes.aplicarLayout(bt_ok, margem1);
       bt_atualizar          = GUIFuncoes.aplicarLayout(bt_atualizar, margem1);
       bt_cancelar           = GUIFuncoes.aplicarLayout(bt_cancelar, margem1);
            
       
       this.getContentPane().setBackground(Color.WHITE);
       this.setModal(true);
       this.setLayout(new MigLayout("", "[180][10][20][30][grow]", "[][]0[]0[]0[][][]"));  
   
    }

    @Override
    public void inserirComponentes() {
        this.add(lb_grupo,"spanx 1, split 2");
        this.add(js_grupo,"w 130!");
        this.add(lb_tipo,"spanx 1, split 2");
        this.add(js_tipo,"w 130!, wrap");
        
        this.add(rb_produto, "w 90!, left");
        this.add(rb_fisica, "left, wrap");
        this.add(rb_servico, "w 90!");
        this.add(rb_juridica, "w 90!, wrap");
        this.add(rb_produtosServicos, "w 150!");
        this.add(rb_outros, "w 150!, wrap");
        this.add(rb_todos, "w 90!");
        this.add(rb_todosTipo, "w 90!, wrap");
        this.add(lb_nome,"grow");
        this.add(lb_tipoPessoa,"gapleft 5, w 30!, split 2");
        this.add(js_tipoFP,"w 115!");
        this.add(lb_cpf,"w 80!");
        this.add(lb_uf,"w 30!,wrap");
        this.add(tf_pesqNome,"grow");
        
        this.add(rb_f,"gapleft 5, w 70!, split 2");
        this.add(rb_j,"grow");
        this.add(ft_cpf,"w 100!");
        this.add(tf_uf,"w 30!");
        this.add(bt_atualizar,"w 115!,wrap 2");
        this.add(jsp, "gaptop 5, span, growx, wrap");
        this.add(bt_ok,"gaptop 5,spanx 5, w 110!, split2, right");
        this.add(bt_cancelar,"gaptop 5,w 110!, right, wrap, gapright 7");
        
        bg_grupo.add(rb_produto);
        bg_grupo.add(rb_servico);
        bg_grupo.add(rb_produtosServicos);
        bg_grupo.add(rb_todos);
        
        bg_tipo.add(rb_fisica);
        bg_tipo.add(rb_juridica);
        bg_tipo.add(rb_outros);
        bg_tipo.add(rb_todosTipo);
        
        bg_tipoPessoa.add(rb_f);
        bg_tipoPessoa.add(rb_j);
    }
    
    public ConsultaFornecedores(AJDialog owner, JTextField tf_codFornecedor){
        super(owner);
        this.tf_codFornecedor = tf_codFornecedor;
        this.setTitle("Consulta Fornecedor");
        this.setSize(610, 375);
        this.setLocationRelativeTo(null);
        this.setResizable(false);
       
        System.out.println("Instanciou Fornecedores");
   

        inicializarComponentes();
        inserirPropriedadesComponentes();
        inserirComponentes();
        atualizarLista();
        this.setVisible(true);
        
    }
    
}
]
Criado 26 de novembro de 2012
Ultima resposta 26 de nov. de 2012
Respostas 11
Participantes 3