Я пытаюсь использовать редактируемый 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?
}
});