public static void comboBoxActionPerform(JComboBox comboBox)
{
String ACTION_KEY = "myAction";
Action actionListener = new AbstractAction()
{
@Override
public void actionPerformed(ActionEvent actionEvent)
{
JComboBox source = (JComboBox) actionEvent.getSource();
source.showPopup();
source.setFocusable(true);
}
};
KeyStroke ctrlT = KeyStroke.getKeyStroke(KeyEvent.VK_L, InputEvent.CTRL_MASK);
InputMap inputMap = comboBox.getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW);
inputMap.put(ctrlT, ACTION_KEY);
ActionMap actionMap = comboBox.getActionMap();
actionMap.put(ACTION_KEY, actionListener);
locationTypeComboBox.setActionMap(actionMap);
}
У меня есть поле со списком, и я вызываю описанный выше метод для всплывающего окна со списком при нажатии клавиш (Ctrl + L). Это всплывает поле со списком. Но я не могу выбрать элементы в нем с помощью клавиш ВВЕРХ/ВНИЗ. Поле со списком не сфокусировано, когда я нажимаю Ctrl + L. Это может быть проблемой, которую нужно исправить. Если я выбираю поле со списком вручную, а затем вверх/вниз работает нормально. Нужна ваша помощь.