Ola…
Estou com uma dificuldade, criei uma janela de pesquisa com VE usando o JTextField e JList…
O usuario digita no field as letras que iniciam o nome do cliente cadastrado e na lista mostra todos os nomes com aquela letra…
O meu código ja faz a pesquisa e seleciona o nome, mas não mostra todos os nomes com aquela letra…
exemplo: letra digitada M
jLista mostra:
Marcio
Marcia
Maria
ai esta o meu código:
aqui pega a letra digitada e passa para o método que faz a pesquisa…
private JTextField getNomeField() {
if (nomeField == null) {
nomeField = new JTextField();
nomeField.setBounds(new Rectangle(74, 26, 339, 20));
nomeField.getDocument().addDocumentListener(new DocumentListener(){
public void insertUpdate(DocumentEvent e){
pesquisarLista(nomeField.getText());
}
@Override
public void changedUpdate(DocumentEvent arg0) {
// TODO Auto-generated method stub
}
@Override
public void removeUpdate(DocumentEvent arg0) {
// TODO Auto-generated method stub
}
});
}
return nomeField;
}
//aqui o método que busca na lista o nome que começa com a letra digitada. e seleciona ela
public void pesquisarLista(String texto){
int pos = pesqList.getNextMatch(texto, 0, Position.Bias.Forward);
pesqList.setSelectedIndex(pos);
pesqList.ensureIndexIsVisible(pos);
}
// aqui o evento da lista onde mostra todos os nomes cadastrados no banco
private JList getPesqList() {
if (pesqList == null) {
MySql banco = new MySql();
listaNome = new ArrayList<String>();
pesqList = new JList(listaNome.toArray());
banco.connect();
ArrayList<Cliente> cliente = banco.getCliente();
for(Cliente cli : cliente){
String nome = cli.getNome();
listaNome.add(nome);
Arrays.sort(listaNome.toArray());
pesqList.setListData(listaNome.toArray());
JScrollPane scrollPane = new JScrollPane (pesqList);
Border borda = BorderFactory.createLineBorder(Color.black);
pesqList.setBorder(borda);
pesqList.setBounds(new Rectangle(30, 61, 384, 146));
scrollPane.setBounds(new Rectangle(30, 61, 384, 146));
}
banco.disconnect();
}
return pesqList;
}
Obrigado pela atenção…
Aguardo respostas…
:shock: