Установка позиции каретки в редактируемом JComboBox

Когда элемент выбирается в поле со списком, который длиннее, чем поле со списком, его конец обрезается, чтобы показать только начальную часть строки, которая подходит. Когда для выпадающего списка установлено значение "редактируемый", отображается конец строки с укороченным началом (что имеет смысл, как если бы пользователь его набрал)

Есть ли способ установить позицию каретки в начале записи, чтобы отобразить начало значения, при этом оставляя поле для редактирования доступным для редактирования? Этого можно достичь, написав специальный редактор для выпадающего списка?

1 ответ

Решение

Это один из способов:

JComboBox comboBox = new JComboBox( ... )
{
    @Override
    public void setSelectedItem(Object item)
    {
        super.setSelectedItem( item );
        ComboBoxEditor editor = getEditor();
        JTextField textField = (JTextField)editor.getEditorComponent();
        textField.setCaretPosition(0);
    }
};
Другие вопросы по тегам