Você está aqui: Java ::: Classes e Componentes ::: JList

Efetuando uma pesquisa incremental em uma JList ao digitar em um JTextField

Quantidade de visualizações: 11616 vezes
/*
 Este exemplo mostra como efetuar uma
 pesquisa incremental em uma JList. À
 medida que o texto é digitado no JTextField,
 o primeiro item começando com tal texto é
 selecionado na JList.
*/

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.event.*;
import javax.swing.text.*;
import java.util.*;

public class Estudos extends JFrame{
  JList lista;  

  public Estudos() {
    super("A classe JList");
    
    Container c = getContentPane();
    c.setLayout(null);
    
    // Cria os itens da lista
    String linguagens[] = {"C#", "VB.NET", "Java",
      "C++", "JavaScript", "Visual Basic", "Delphi",
      "Python", "C", "ASP", "ASP.NET", "PHP"};

    // ordena os itens da lista
    Arrays.sort(linguagens);

    // Cria a JList
    lista = new JList(linguagens);
 
    // Adiciona um rótulo
    JLabel rotulo = new JLabel("Pesquisar na lista:");    
    c.add(rotulo);
    rotulo.setBounds(10, 5, 200, 20);

    // Adiciona a caixa de texto usada para pesquisar
    // os valores na lista
    final JTextField pesquisa = new JTextField();    
    pesquisa.getDocument().addDocumentListener(
      new DocumentListener(){
        public void insertUpdate(DocumentEvent e){
          pesquisarLista(pesquisa.getText()); 
        }
   
        public void removeUpdate(DocumentEvent e){
          pesquisarLista(pesquisa.getText());  
        }

        public void changedUpdate(DocumentEvent e){}
      }
    );   
 
    c.add(pesquisa);
    pesquisa.setBounds(10, 27, 150, 20);

    // Adiciona a lista à janela
    JScrollPane scroll = new JScrollPane(lista);
    c.add(scroll);
    scroll.setBounds(10, 49, 150, 150);  

    setSize(350, 250);
    setVisible(true);
  }
  
  public static void main(String args[]){
    Estudos app = new Estudos();
    app.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  }

  public void pesquisarLista(String texto){
    int pos = lista.getNextMatch(texto, 0, Position.Bias.Forward);
    lista.setSelectedIndex(pos);
    lista.ensureIndexIsVisible(pos);
  }
}


Link para compartilhar na Internet ou com seus amigos:

Desafios, Exercícios e Algoritmos Resolvidos de Java

Veja mais Dicas e truques de Java

Dicas e truques de outras linguagens

E-Books em PDF

E-Book 350 Exercícios Resolvidos de Java - PDF com 500 páginas
Domine lógica de programação e a linguagem Java com o nosso E-Book 350 Exercícios Exercícios de Java, para você estudar onde e quando quiser.

Este e-book contém exercícios resolvidos abrangendo os tópicos: Java básico, matemática e estatística, programação dinâmica, strings e caracteres, entrada e saída, estruturas condicionais, vetores e matrizes, funções, laços, recursividade, internet, arquivos e diretórios, programação orientada a objetos e muito mais.
Ver Conteúdo do E-book
E-Book 650 Dicas, Truques e Exercícios Resolvidos de Python - PDF com 1.200 páginas
Domine lógica de programação e a linguagem Python com o nosso E-Book 650 Dicas, Truques e Exercícios Exercícios de Python, para você estudar onde e quando quiser.

Este e-book contém dicas, truques e exercícios resolvidos abrangendo os tópicos: Python básico, matemática e estatística, banco de dados, programação dinâmica, strings e caracteres, entrada e saída, estruturas condicionais, vetores e matrizes, funções, laços, recursividade, internet, arquivos e diretórios, programação orientada a objetos e muito mais.
Ver Conteúdo do E-book

Linguagens Mais Populares

1º lugar: Java
2º lugar: Python
3º lugar: C#
4º lugar: PHP
5º lugar: C
6º lugar: Delphi
7º lugar: JavaScript
8º lugar: C++
9º lugar: VB.NET
10º lugar: Ruby



© 2025 Arquivo de Códigos - Todos os direitos reservados
Neste momento há 27 usuários muito felizes estudando em nosso site.