Я успешно использую postActionEvent() для JTextField, у которого есть ActionListener для имитации действия пользователя (нажатие клавиши Enter). Я хотел бы создать такой же тип моделирования для JComboBox, у которого есть ActionListener, но я не нашел postActionEvent() для JComboBox. Как это может быть выполнено (имитация нажатия пользователем клавиши Enter)?
Есть ли postActionEvent для JComboBox?
Ответы (2)
Как это может быть выполнено (имитация нажатия пользователем клавиши Enter)?
В поле со списком есть действие "enterPressed"
. Таким образом, вы должны иметь возможность получить доступ к Action
из ActionMap
поля со списком, а затем вручную вызвать метод actionPerformed(...)
действия.
Ознакомьтесь с привязки клавиш для программы, чтобы получить список всех привязок для всех Качающиеся компоненты.
person
camickr
schedule
21.10.2014
Мне трудно понять привязки клавиш. Я продолжу учиться.
- 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
Это не имитирует нажатие пользователем клавиши Enter. Кроме того, Swing был разработан для использования с
Key Bindings
, а не с KeyListener.
- person camickr; 21.10.2014
Да вы правы. Прочитав другой вопрос немного больше, я вижу это.
- person user489041; 21.10.2014