Hello Pedro, I'm sure It is your problem. I did it.
package test;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class Honh extends JFrame{
private JComboBox ch;
private String[] str = {"horse", "dog", "cat", "camel", "rabbit",
"robot"};
String str_buff = "";
public Honh(){
setLayout(new FlowLayout());
setVisible(true);
setSize(200, 200);
setLocation(500, 300);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
ch = new JComboBox();
ch.setEditable(true);
ch.addItem("");
ch.getEditor().getEditorComponent().addKeyListener(new KeyListener()
{
public void keyPressed(KeyEvent ke) {}
public void keyReleased(KeyEvent ke) {
if(ke.getKeyCode() >= 65 && ke.getKeyCode() <= 90){
str_buff = str_buff.concat(Character.toString(ke.getKeyChar()));
System.out.println("haha + " + str_buff);
ch.removeAllItems();
ch.setSelectedItem(str_buff);
for(int i = 0; i < str.length; i ++){
if(str[i].contains(str_buff)){
System.out.println(str_buff);
ch.addItem(str[i]);
ch.setSelectedItem(str_buff);
}
}
ch.showPopup();
}
else if(ke.getKeyChar() == KeyEvent.VK_BACK_SPACE){
int len = str_buff.length();
if(len <= 1){
str_buff = "";
ch.setSelectedItem(str_buff);
ch.removeAllItems();
}else{
str_buff = str_buff.substring(0, len - 1);
}
}
}
public void keyTyped(KeyEvent ke) {}
});
add(ch);
}
public static void main(String[] args) {
new Honh();
}
}