JComboBox with search in database?
Hello
JCombobox is setEditable(true) for searching in my database. when I
add words to search I need return all results for the word and popup
for Jcombobox open with all results found.
I am trying this.
[code]
//JComboBox implements ComboBoxModel
public class JComboModelFuncoes extends AbstractListModel implements
ComboBoxModel{
private Object selectedItem;
private List<Funcoes> listaFuncoes = null;
public JComboModelFuncoes(List<Funcoes> lista){
listaFuncoes = lista;
}
@Override
public int getSize() {
return listaFuncoes.size();
}
@Override
public Object getElementAt(int index) {
return listaFuncoes.get(index);
}
@Override
public void setSelectedItem(Object anItem) {
selectedItem = anItem;
}
@Override
public Object getSelectedItem() {
return selectedItem;
}
}
//here how to trying in my JFrame
public void editorCombo(){
comboPesquisa.setMaximumRowCount(10);
JTextComponent t = null;
t =
(JTextComponent)comboPesquisa.getEditor().getEditorComponent();
t.addKeyListener(new KeyListener() {
@Override
public void keyTyped(KeyEvent e) {
e.getKeyChar();
}
@Override
public void keyPressed(KeyEvent e) {
if(e.getKeyCode() == KeyEvent.VK_ENTER){
}
}
@Override
public void keyReleased(KeyEvent e) {
//throw new UnsupportedOperationException("Not
supported yet.");
List<Funcoes> lista = new
FuncoesDAO().retornaFuncao(String.valueOf(e.getKeyChar()).toUpperCase());
JComboModelFuncoes mf = new
JComboModelFuncoes(lista);
comboPesquisa.setModel(mf);
comboPesquisa.setPopupVisible(true);
}
});
}
//here my DAO
public List<Funcoes> retornaFuncao(String funcao){
List<Funcoes> lista = new ArrayList<Funcoes>();
PreparedStatement stm = null;
ResultSet rs = null;
try{
stm = this.con.prepareStatement("SELECT * FROM funcoes
WHERE funcao LIKE ?");
stm.setString(1, "%" + funcao + "%");
rs = stm.executeQuery();
while(rs.next()){
Funcoes f = new Funcoes();
f.setIdFuncao(rs.getLong("id_funcao"));
f.setFuncao(rs.getString("funcao"));
lista.add(f);
}
}catch (SQLException e){
JOptionPane.showMessageDialog(null, "Erro tentando
consultar fun=E7=E3o", "Erro", JOptionPane.ERROR_MESSAGE);
}finally{
try {
rs.close();
stm.close();
} catch (SQLException ex) {
Logger.getLogger(FuncoesDAO.class.getName()).log(Level.SEVERE, null,
ex);
}
}
return lista;
}
[/code]
How to make a search with JComboBox with enter one by one word ?
thanks