2014-09-06 2 views
1

В поле со списком будет происходить событие, если выбрано РАЗНОЕ. Я хочу также иметь возможность прослушивать выбранный пункт (т. Е. ValueProperty не имеет никаких изменений). Кажется, нет никакого способа сделать это.ComboBox ИДЕННЫЙ пункт выбранный исполнитель действия

Я попытался расширить ComboBox и найти способ слушать небольшое закрытие всплывающего меню, но у меня даже нет доступа к этому! Что я могу сделать?

Вот что я пытался:

class ResponsiveComboBox<E> extends ComboBox<E> { 

    public ResponsiveComboBox() { 
     super(); 
     assert getContextMenu() != null; //Asssertion failed! 
     this.getContextMenu().setOnHiding((WindowEvent event) -> { 
      fireEvent(new ActionEvent()); 
     }); 
    } 

} 

ответ

3
comboBox.showingProperty().addListener((obs, wasShowing, isShowing) -> { 
    if (! isShowing) { 
     System.out.println("Combo box popup hidden"); 
    } 
}); 

Этот обработчик событий может быть вызвано прежде, чем значение будет изменено.

+0

Замечательно! Он также заботится о onCancelEdit для меня одновременно. Еще раз спасибо. –

Смежные вопросы