我正在尝试使用可编辑的JComboBox
,以便用户在编辑器中输入内容时,可能的结果会显示在组合框的列表部分中。
不幸的是,我发现在使用 addItem(item)
或 getModel().addItem(item)
时,用户键入的输入会被我添加的第一个值覆盖。我考虑过存储编辑器值、添加项目,然后使用 setSelectedItem() 来解决此问题,但我不想保留任何选定文本/插入符位置的状态,并且相信这应该是更微不足道的事情,但我一生都无法弄清楚。
JComboBox box = new JComboBox();
box.setModel(new MutableComboBoxModel());
box.setEditable(true);
box.getEditor().getEditorComponent().addKeyListener(new KeyListener() {
public void keyPressed(KeyEvent e) {
}
public void keyReleased(KeyEvent e) {
}
public void keyTyped(KeyEvent e) {
// Actual results are retrieved from server via HTTP
box.addItem("Demo");
// Here, the editor window the user was typing in is replaced with the value "Demo".. how to fix this?
}
});
我是一名优秀的程序员,十分优秀!