Linguagem Java (SE): Fazer uma pesquisa utilizando JTextField.


Jbwebmaster – João Batista Dantas Bezerra Júnior

Olá pessoal, hoje vou mostrar pra vocês como fazer uma pesquisa utilizando JTextField no NetBeans 6.5. Para isso você deve ter uma classe de conexão com o banco, ter feito a conexão e tudo mais. Vou me deter apenas na classe e no método para pesquisar.

  1. Crie um pacote chamadoMetodos_Importantes” .
  2. Crie uma classe Java vazia com o nomePesquisaPadrao” .
  3. Você deve inserir o nome do pacote – package Metodos_Importantes ;
  4. Agora você precisará importar as seguintes bibliotecas:

import java.sql.SQLException;

import javax.swing.JOptionPane;

import javax.swing.JTextField;

  1. Feito isso, declare como public a classe:

public class PesquisaPadrao{

Não se esqueçam de abrir e fechar o escopo da classe

}

  1. No corpo da classe declare as variáveis:

{(corpo)}

//declarei a variável pesquisar do tipo String e publica

public String pesquisar;

//declarei como public do tipo JTextField

public JTextField tf_opcao_cod, tf_opcao_pesq;

//declarei como public do tipo ConexaoBanco

//lembrar de ter o classe ConexaoBanco no mesmo pacote da PesquisaPadrao ,se não, terá

//que importar o pacote aonde esta a classe.

public ConexaoBanco var_con_banco;

  1. Ainda dento do corpo da classe crie o método escolherPesquisa e passe por parâmetro as seguintes variáveis :

public void escolherPesquisa(String pesq_por, ConexaoBanco var_banco, JTextField tf_op_cod, JTextField tf_op_pesq){

}

7.1 Dessa forma quando chamar o método na seu classe principal, vai precisar apenas digitar os campos correspondentes com o que você declarou na sua classe principal.

7.2 // variável “pesquisar” recebe a variável “pesq_por” ambas do tipo String
pesquisar = pesq_por;
// variável “var_con_banco” recebe a variável “var_banco” ambas do tipo String

var_con_banco = var_banco;

// variável “tf_opcao_cod” recebe a variável “tf_op_cod” ambas do tipo String

tf_opcao_cod = tf_op_cod;

// variável “tf_opcao_pesq” recebe a variável “tf_op_pesq” ambas do tipo String

tf_opcao_pesq = tf_op_pesq;

O meu obj de conexao com o banco, foi no resultset e mandou posicionar no primeiro registro:

var_con_banco.resultset.first();

Declaro uma variável, do tipo String, de nome “igual” que vai receber “nao” inicialmente:

String igual = “nao”;

Em seguida declaro uma variável, do tipo int, de nome “contar_caracter” que vai retonar o tamanho da minha pesquisa. Foi utilizado o método length() e o método getText():

int contar_caracter = tf_opcao_pesq.getText().length();

Apenas vai me retornar quantos caracteres vou ter dentro do meu JTextField “tf_opcao_pesq”, ex: gol tem 3 caracteres .

No while (enquanto), significa que enquanto a variável for igual a “nao” e como é um laço ele vai continuar procurando, mas se não tiver colocamos a mensagem “Não foi possível localizar via digitação! “. Então depois criei uma variável, do tipo String, chamada foi_pesquisado que vai no meu objeto de conexão com o banco, no meu resultset e vai pegar a String de acordo com o parâmetro passado por vocês quando for chamar o método na classe onde vai ser usada. Exemplo se for pesquisar por nome, coloca nome quando instanciar o método :

escolherPesquisa(“nome”, cliente, tf_codigo, tf_pesq);

feito isso, vai para a substring(0, (contar_caracter)), que vai contar de “zero” 0 até contar_caracter (quantidade de caracteres), uma substring procura parte de uma expressão e que é informada por parâmetros, desse forma quando for digitado “J” de João ele vai armazenar na variável foi_pesquisado o que foi digitado:

String foi_pesquisado = var_con_banco.resultset.getString(pesquisar).substring(0, (contar_caracter));

Com isso quando iniciar o IF (se), vou ter de comparar o que foi digitado com o que tenho na minha base de dados – tipo :

if (foi_pesquisado.equals(tf_opcao_pesq.getText()))

Aqui estou procurando saber se a variável foi_pesquisado é igual ao que tem no meu JTextField (tf_opcao_pesq), se for, a variável “igual” recebe “sim” e sai do laço, com isso o meu JTextField “tf_opcao_cod” vai receber o código, podendo assim mostrar os dados num possível método que vocês venham a ter, para mostrar dados:

tf_opcao_cod.setText(var_con_banco.resultset.getString(“codigo”));

Se continua com “nao”, fica no laço ate encontrar – var_con_banco.resultset.next(); – fica indo para o próximo, quando não houver mais, entrar no catch onde mostra a mensagem:

JOptionPane.showMessageDialog(null, “Não foi possível localizar via digitação! “);

Classe completa:

package Metodos_Importantes;
import java.sql.SQLException;
import javax.swing.JOptionPane;
import javax.swing.JTextField;

public class PesquisaPadrao{
//declarei a variável pesquisar do tipo String e publica
public String pesquisar;
//declarei como public do tipo JTextField
public JTextField tf_opcao_cod, tf_opcao_pesq;
//declarei como public do tipo ConexaoBanco
public ConexaoBanco var_con_banco;

public void escolherPesquisa(String pesq_por, ConexaoBanco var_banco,
 JTextField tf_op_cod, JTextField tf_op_pesq){

try{

pesquisar = pesq_por;
var_con_banco = var_banco;
tf_opcao_cod = tf_op_cod;
tf_opcao_pesq = tf_op_pesq;

var_con_banco.resultset.first();

String igual = "nao";
int contar_caracter = tf_opcao_pesq.getText().length();

while (igual == "nao") {
String foi_pesquisado = var_con_banco.resultset.getString(pesquisar).substring(0, (contar_caracter));

if (foi_pesquisado.equals(tf_opcao_pesq.getText())) {
igual = "sim";
} else {
var_con_banco.resultset.next();
}
}
tf_opcao_cod.setText(var_con_banco.resultset.getString("codigo"));

} catch (SQLException erro) {
JOptionPane.showMessageDialog(null, "Não foi possível localizar via digitação! ");
}
}
}
<pre>

Espero que gostem, até a próxima.

Deixe um comentário