У меня следующая проблема:
Мне нужно установить пользовательский интерфейс для JComboBoxComponent
(для изменения цвета, кнопки со стрелкой и т. Д.) В настоящее время я делаю это в конструкторе, например:
public MyComboBox() {
setUI(new MyComboBoxUI);
}
Проблема в том, что после настройки пользовательского интерфейса я каким-то образом теряю все содержимое InputMap
и ActionMap
для списка во всплывающем окне со списком, то есть он не прокручивает список вверх или вниз с помощью клавиш со стрелками.
Что я здесь не так делаю?
Вот код:
public class CurrencyPairComboBox extends JComboBox {
public CurrencyPairComboBox() {
setUI(new CurrencyPairComboBoxUI());
}
}
class CurrencyPairComboBoxUI extends BasicComboBoxUI {
@Override
public void installUI(JComponent c) {
super.installUI(c);
listBox.setSelectionBackground(Color.BLACK);
listBox.setSelectionForeground(Color.WHITE);
}
@Override
protected JButton createArrowButton() {
arrowButton = new JButton();
arrowButton.setIcon(OrderWidgetUIConstants.DROPDOWN_ARROW_ICON);
arrowButton.setRolloverIcon(OrderWidgetUIConstants.DROPDOWN_ARROW_HOVER_ICON);
return arrowButton;
}
}