Я пытаюсь вызвать функцию, когда пользователь нажимает (с помощью мыши) на элемент в JComboBox; однако я не хочу, чтобы это событие запускалось для каких-либо событий клавиатуры - я только хочу, чтобы это было сделано для щелчка по определенной ячейке выпадающего списка (я знаю о addActionListener и addItemListener, но они увольняются для большего количества событий, чем я хочу).JComboBox mouseClicked on cell
EDIT: Я должен был указать, что mouseClicked тоже не работает - никаких событий не срабатывает (однако они были в какой-то момент, но когда это произошло, они также стреляли по щелчкам в текстовое поле), но Я думал, что это взято из названия.
Я также попытался Приведенным решением здесь (также не работает): Editable JCombobox mouseclicked event not working
EDIT2: Я попытался следующий, но до сих пор нет вывода по щелчку:
try {
Field popupInBasicComboBoxUI = BasicComboBoxUI.class.getDeclaredField("popup");
popupInBasicComboBoxUI.setAccessible(true);
BasicComboPopup popup = (BasicComboPopup)popupInBasicComboBoxUI.get(attachedCB.getUI());
Field scrollerInBasicComboPopup = BasicComboPopup.class.getDeclaredField("scroller");
scrollerInBasicComboPopup.setAccessible(true);
JScrollPane scroller = (JScrollPane)scrollerInBasicComboPopup.get(popup);
scroller.getViewport().getView().addMouseListener(new MouseAdapter() {
@Override
public void mouseClicked(MouseEvent e) {
super.mouseClicked(e);
System.out.println("nope");
}
});
}
catch (IllegalAccessException e) {
e.printStackTrace();
}
catch (NoSuchFieldException e) {
e.printStackTrace();
}
Вы должны добавить MouseListener к Всплывающие не JComboBox как пример говорится здесь: http://engin-tekin.blogspot.com/2009/10/hrefhttpkfd.html ли вы попробовать это и не работает? Если да, то где вы используете другой ЛАФ? – Jayfray
См. EDIT2, не работает :( – user235236
Попробуйте добавить слушателя в JList из popup.getList() – Jayfray