Bom Dia pessoal, sou novato em java e nao estou conseguindo resolver esse probleminha...estou tentando implantar um autocomplete no meu projeto, segue abaixo as classes...
ESSE É O JCOMBOBOX E NOTEM A CLASSE mostrarSugerencias (String s, String [] select){
import javax.swing.JComboBox;
import javax.swing.text.JTextComponent;
public class JAutoCompleteCombo extends JComboBox{
private static final long serialVersionUID = 1L;
private String s;
public JAutoCompleteCombo(){
super();
}
public void mostrarSugerencias (String s, String [] select){
this.hidePopup();
this.removeAllItems();;
for (String temp : select) {
this.addItem(temp);
}
if (select.length>0){
this.showPopup();
}
if (s.length()==0){
this.hidePopup();
}
this.getEditor().setItem(s);
this.getEditor().getEditorComponent().repaint();
((JTextComponent)this.getEditor().getEditorComponent()).select(s.length(), s.length());
}
}
produtos.getEditor().getEditorComponent().addKeyListener(new KeyListener() {
@Override
public void keyTyped(KeyEvent e) {
}
@Override
public void keyReleased(KeyEvent e) {
if (e.getKeyCode() != KeyEvent.VK_UP && e.getKeyCode() != KeyEvent.VK_DOWN
&& e.getKeyCode() != KeyEvent.VK_LEFT && e.getKeyCode() != KeyEvent.VK_RIGHT && e.getKeyCode() != KeyEvent.VK_ENTER) {
String hint = produtos.getEditor().getItem().toString();
System.out.println(produtos.getEditor().getItem().toString());
try {
produtos.mostrarSugerencias(produtos.getEditor().getItem().toString(), Inicio.this.buscar("SELECT produtos FROM produtos WHERE produtos LIKE \'" + hint + "%" + "\' ORDER BY produtos DESC LIMIT 5"));
} catch (SQLException ex) {
Logger.getLogger(Inicio.class.getName()).log(Level.SEVERE, null, ex);
}
}
if (KeyEvent.VK_ENTER == e.getKeyCode() || KeyEvent.VK_ESCAPE == e.getKeyCode()) {
produtos.hidePopup();
}
if (KeyEvent.VK_ENTER == e.getKeyCode()) {
//insertarDato();
}
}
@Override
public void keyPressed(KeyEvent e) {
}
});
public String[] buscar(String query) throws SQLException {
String[] dados = new String[5];
conn = new Conexao().getConnection();
Statement pt = conn.createStatement();//cria um novo Statement para acesso ao banco de dados
ResultSet rs = pt.executeQuery(query);//cria um ResultSet com o resultado da consulta
while (rs.next()) {
for (int i = 0; i < dados.length; i++) {
dados[i] = rs.getString(i + 1);
}
}
return dados;
}
MINHA DUVIDA É, COMO EU CONSIGO ENVIAR UMA String [] select A PARTIR DA CLASSE DA CONEXAO PARA ATENDER A CLASSE mostrarSugerencias.
OBRIGADO A AJUDA E DESCULPE MINHA IGNORANCIA.