JDialog para que eu possa fazer uma pequena alteração

7 respostas
S

Bem, eu quero pesquisar algo no banco de dados, o código funciona, mas agora eu resolvi fazer um JDialog para que a pessoa decidisse pesquisar pelo Código, RG ou CPF, dentro do JDialog tem uma combo box e um campo de texto para isso.
Eu quero puxar os valores que a pessoa digitar na JDialog para o programa normal e assim realizar minha pesquisa, mas como eu faço isso?
Segue o código:

private void btnPesquisarFuncMouseClicked(java.awt.event.MouseEvent evt) {                                              
        PesquisaDiag.setVisible(true);
        try {
            DriverManager.registerDriver(new com.mysql.jdbc.Driver());
            String banco = "testetcc"; //Nome do Banco criado
            String host = "localhost"; //Maquina onde está o banco
            String str_conn = "jdbc:mysql://" + host + ":3306/" + banco; //URL de conexão
            String usuario = "root"; //Usuário do banco
            String senha = ""; //Senha de conexão
            Statement stmt = null; //Inicializa Statement
            Connection conn = null; //Inicializa Connection
            conn = DriverManager.getConnection(str_conn, usuario, senha);
            stmt = conn.createStatement();
            String sql = "SELECT * FROM funcionario WHERE ? = ?";
            PreparedStatement pstmt = conn.prepareStatement(sql);
            pstmt.setString(1, campo); //Aqui vem o valor do combo box
            pstmt.setString(2, dado); //Aqui vem o valor do campo de texto
            ResultSet rs = pstmt.executeQuery();
            while (rs.next()) {
                txtCodFunc.setText(rs.getString("Cod_Funcionario"));
                txtNomeFunc.setText(rs.getString("Nome"));
                txtEnderecoFunc.setText(rs.getString("Endereco"));
                txtCEPFunc.setText(rs.getString("CEP"));
                txtBairroFunc.setText(rs.getString("Bairro"));
                txtCidadeFunc.setText(rs.getString("Cidade"));
                cmbEstadoFunc.setSelectedItem(rs.getString("Estado"));
                txtNaturalFunc.setText(rs.getString("Cidade_Natu"));
                cmbEstadoNascFunc.setSelectedItem(rs.getString("Estado_Natu"));
                txtTelefoneFunc.setText(rs.getString("Tel"));
                txtCelularFunc.setText(rs.getString("Tel_Cel"));
                txtRGFunc.setText(rs.getString("RG"));
                txtCPFFunc.setText(rs.getString("CPF"));
                txtCargoFunc.setText(rs.getString("Funcao"));
                txtEmailFunc.setText(rs.getString("E_Mail"));
                txtpaneHistFunc.setText(rs.getString("Historico"));
            }
            pstmt.close();
            stmt.close();
            conn.close();
        } catch (Exception ex) {
            JOptionPane.showMessageDialog(null, "Erro (" + ex + ") ao conectar ao banco de dados, entre em contato com o Administrador!");
        }
    }                                             

    private void jButton31MouseClicked(java.awt.event.MouseEvent evt) { //Botão dentro do Dialog
        campo = cmbCampo.getSelectedItem().toString(); //Variável do combo box onde tem os campos que podem ser pesquisados
        dado = txtDado.getText(); //Variável onde vai o que deve ser pesquisado
        PesquisaDiag.dispose();
    }
Obrigado, qualquer coisa é só falar!

7 Respostas

ViniGodoy

http://www.guj.com.br/posts/list/55710.java#292687

S

Li esse tópico mas agora aparece erro nas linhas:

private void jButton31MouseClicked(java.awt.event.MouseEvent evt) { public String getDado(){ return txtDado.getText(); } public String getCampo(){ return cmbCampo.getSelectedItem().toString(); } PesquisaDiag.setVisible(false); }
Esse é o código do botão e onde aparece o erro:
“Illegal start of expression”
Esse erro aparece nas linhas “public String…”, em ambas, e se eu removo isso ele funciona normalmente (não aparece erros e não faz o que eu quero, mas funciona).
Como faz :?:

ViniGodoy
Ué... vc tá colocando um método dentro de outro método? Aí não funciona mesmo.
public  String getDado(){  
   return txtDado.getText();  
}  

public String getCampo(){  
   return cmbCampo.getSelectedItem().toString();  
}  

private  void jButton31MouseClicked(java.awt.event.MouseEvent evt) {                                         
   PesquisaDiag.setVisible(false);  
}
S
Agora o erro é estranho:
private void btnPesquisarFuncMouseClicked(java.awt.event.MouseEvent evt) {                                              
        PesquisaDiag.setVisible(true);
        try {
            DriverManager.registerDriver(new com.mysql.jdbc.Driver());
            String banco = "testetcc"; //Nome do Banco criado
            String host = "localhost"; //Maquina onde está o banco
            String str_conn = "jdbc:mysql://" + host + ":3306/" + banco; //URL de conexão
            String usuario = "root"; //Usuário do banco
            String senha = ""; //Senha de conexão
            Statement stmt = null; //Inicializa Statement
            Connection conn = null; //Inicializa Connection
            conn = DriverManager.getConnection(str_conn, usuario, senha);
            stmt = conn.createStatement();
            String sql = "SELECT * FROM funcionario WHERE ? = ?";
            PreparedStatement pstmt = conn.prepareStatement(sql);
            pstmt.setString(1, PesquisaDiag.getCampo());
            pstmt.setString(2, PesquisaDiag.getDado());
            ResultSet rs = pstmt.executeQuery();
            while (rs.next()) {
                txtCodFunc.setText(rs.getString("Cod_Funcionario"));
                txtNomeFunc.setText(rs.getString("Nome"));
                txtEnderecoFunc.setText(rs.getString("Endereco"));
                txtCEPFunc.setText(rs.getString("CEP"));
                txtBairroFunc.setText(rs.getString("Bairro"));
                txtCidadeFunc.setText(rs.getString("Cidade"));
                cmbEstadoFunc.setSelectedItem(rs.getString("Estado"));
                txtNaturalFunc.setText(rs.getString("Cidade_Natu"));
                cmbEstadoNascFunc.setSelectedItem(rs.getString("Estado_Natu"));
                txtTelefoneFunc.setText(rs.getString("Tel"));
                txtCelularFunc.setText(rs.getString("Tel_Cel"));
                txtRGFunc.setText(rs.getString("RG"));
                txtCPFFunc.setText(rs.getString("CPF"));
                txtCargoFunc.setText(rs.getString("Funcao"));
                txtEmailFunc.setText(rs.getString("E_Mail"));
                txtpaneHistFunc.setText(rs.getString("Historico"));
            }
            pstmt.close();
            stmt.close();
            conn.close();
        } catch (Exception ex) {
            JOptionPane.showMessageDialog(null, "Erro (" + ex + ") ao conectar ao banco de dados, entre em contato com o Administrador!");
        }
    }
public String getCampo(){
        return cmbCampo.getSelectedItem().toString();
    }

    public String getDado(){
        return txtDado.getText();
    }

Meus métodos existem, mas na linha onde eu faço referência a eles: "pstmt.setString(1, PesquisaDiag.getCampo());" e "pstmt.setString(2, PesquisaDiag.getDado());" está dando erro dizendo que não foi achado o método.
O que fazer :?:

Obs: Passou desapercebido colocar um método dentro do outro :oops:

ViniGodoy

Verifique se você não colocou os métodos dentro do Listener por acidente ao invés de dentro do dialog.
As vezes isso acontece.

S

Desculpe, mas meu código foi feito no NetBeans e é meio automático, eu não fiz uma classe nova chamada “PesquisaDiag” ele é um JDialog que fica dentro do arquivo que eu já tenho, e o jeito que o NetBeans usa para instanciar objetos é extremamente estranho. Eu não tenho algo como “public void PesquisaDiag extends JDialog” então onde eu colocaria esses métodos?

S

Ainda não consegui, alguém pode me dar uma luz?

Criado 11 de maio de 2010
Ultima resposta 12 de mai. de 2010
Respostas 7
Participantes 2