Я пытался использовать getInputMap () + getActionMap () на JComboBox, и это, похоже, не дает никакого эффекта.
Я пробовал addActionListener () / addItemListener () на JComboBox, и я не могу отличить изменение выбора от кого-то, кто нажал клавишу Return / Enter.
Есть предложения? В моем приложении я хочу, чтобы клавиша Return / Enter была сильнее, чем просто выделение, это действие выбора + применения.
Вот мой код для настройки привязки клавиш. Он отлично работает (например, вызывается note("hit ENTER")
), когда компонент является JList
, но не работает, когда компонент является JComboBox.
private void setupApplyProfile(final JComponent component, final MyComboBoxModel mcbm)
{
String enterAction = "applyItem";
KeyStroke enterKey = KeyStroke.getKeyStroke("ENTER");
component.getInputMap().put(enterKey, enterAction);
component.getActionMap().put(enterAction, new AbstractAction()
{
@Override public void actionPerformed(ActionEvent e) {
note("hit ENTER");
applySelectedProfile(mcbm);
}
});
}