Есть ли postActionEvent для JComboBox?

Я успешно использую postActionEvent() для JTextField, у которого есть ActionListener для имитации действия пользователя (нажатие клавиши Enter). Я хотел бы создать такой же тип моделирования для JComboBox, у которого есть ActionListener, но я не нашел postActionEvent() для JComboBox. Как это может быть выполнено (имитация нажатия пользователем клавиши Enter)?


person San Lewy    schedule 21.10.2014    source источник


Ответы (2)


Как это может быть выполнено (имитация нажатия пользователем клавиши Enter)?

В поле со списком есть действие "enterPressed". Таким образом, вы должны иметь возможность получить доступ к Action из ActionMap поля со списком, а затем вручную вызвать метод actionPerformed(...) действия.

Ознакомьтесь с привязки клавиш для программы, чтобы получить список всех привязок для всех Качающиеся компоненты.

person camickr    schedule 21.10.2014
comment
Мне трудно понять привязки клавиш. Я продолжу учиться. - person San Lewy; 21.10.2014

Вы также можете использовать KeyListener:

addKeyListener(new KeyAdapter() {

    @Override
    public void keyReleased(KeyEvent event) {
        if (event.getKeyChar() == KeyEvent.VK_ENTER) {
            if (((JTextComponent) ((JComboBox) ((Component) event
                    .getSource()).getParent()).getEditor()
                    .getEditorComponent()).getText().isEmpty())
                System.out.println("please dont make me blank");
        }
    }
});

См. этот вопрос

person user489041    schedule 21.10.2014
comment
Это не имитирует нажатие пользователем клавиши Enter. Кроме того, Swing был разработан для использования с Key Bindings, а не с KeyListener. - person camickr; 21.10.2014
comment
Да вы правы. Прочитав другой вопрос немного больше, я вижу это. - person user489041; 21.10.2014