Java- Pesquisar e Pegar valor direto no JtextField

Boa tarde,
Tenho uma tela de cadastros onde dependo de dados de outra tabela para incluir um registro, gostaria de ter uma instrução/exemplo, de como atribuir á um JtextField uma busca de registro automática, de forma que retorne o valor seleciona para o mesmo.

Algum possui algum exemplo desse método?

Desculpa, eu não entendi muito bem. Você quer clicar na tabela e mostrar no textfield? Ou quer escrever no textfield e mostrar na tabela?

Eu quero que o JtextField faça uma busca independente da tabela…
Exemplo esse Jtext… é para inserir o Nome do cliente, para o cadastro de uma mercadoria, mas a tabela cliente é separada da tabela mercadoria, então o JtextField tem de me retornar uma busca no banco de dados, Setando nele mesmo o nome selecionado, Startando essa busca conforme digito os caracteres…

Pesquisa tipo o Google né?

Isso, mas no exemplo que vi com esse contexto “Tipo google” a pessoa pesquisa no Jtext e joga para outro Jtext o resultado, eu quero implementar buscando e já setando no mesmo Jtext… pelo menos pretendo estudar até conseguir dessa maneira.

Olha, a única coisa que você mudaria do exemplo que vc viu, é o jtextfield que vai receber o resultado.

Vê esse vídeo e vê se é o que vc precisa

Eu fiz algo parecido uma vez, foi assim:

um DAO que vai fazer a busca no BD

public List Pesquisar(String nome) {

    Connection con = Conexao.getConnection();
    
    PreparedStatement stmt = null;
    ResultSet rs = null;

    List<Cliente> clientes = new ArrayList<>();

    try {
        stmt = con.prepareStatement("SELECT * FROM cliente WHERE nome LIKE ?");
        stmt.setString(1, "%"+nome+"%");
        
        rs = stmt.executeQuery();

        while (rs.next()) {

            Cliente c = new Cliente();

            c.setId(rs.getInt("id"));
            c.setNome(rs.getString("nome"));
            c.setSobreNome(rs.getString("sobrenome"));
            c.setCpf(rs.getString("cpf"));
            clientes.add(c);
        }

    } catch (SQLException ex) {
        Logger.getLogger(ClienteDAO.class.getName()).log(Level.SEVERE, null, ex);
    } finally {
        Conexao.closeConnection(con, stmt, rs);
    }

    return clientes;

}

Fiz um botão que pegar o valor do JTextField e envia o parâmetro pra um outro método que chama mais um método que pesquisa (DAO acima) e seta os valores em uma tabela

readJTablePesquisar(txtPesquisar.getText());

Método que chama outro método que faz pesquisa e joga na tabela

public void readJTablePesquisar(String nome) {

    DefaultTableModel modelo = (DefaultTableModel) jTableClientes.getModel();
    modelo.setNumRows(0);
    ClienteDAO pdao = new ClienteDAO();

    for (Cliente c : pdao.Pesquisar(nome)) {

        modelo.addRow(new Object[]{
            c.getId(),
            c.getNome(),
            c.getSobreNome(),
            c.getCpf()
        });

    }

}

No teu caso é só adaptar pra onde o valor vai ser setado

Bom vou estudar os exemplos, e posto os resultados… obrigado

Pessoal, achei um método de trabalho com Combobox, que faz oque preciso, ele usa uma pacote novo que permite Autobusca, e a implementação é mais eficaz com um menor numero de linhas, sem a necessidade de introduzir tanta consulta no Jframe, por conta de uma única função!!!

1 curtida

Só por questões de conhecimento, meu código final ficou limpo, e dessa maneira, utilizando Dao e Model + Swingx.

Abaixo crio uma função para popular o ComboBox.

//Função que popula o combobox
public void ComboCliente (){

      ClienteRead dao = new ClienteRead();
      
      for(Cliente c : dao.Lista() ){
          jcombocliente.addItem(c);
      }
  }

Na inicialização de componentes, crio a função que habilita pesquisa.

AutoCompleteDecorator.decorate(jcombocliente);