Я хочу реализовать MouseEvent в моей NatTable для всех ячеек, которые реализуются через класс ComboBoxCellEditor. Если в поле со списком появляется один клик, открывается раскрывающийся список с записями. Поэтому я зарегистрировал FirstSingleClickBinding в своем UiBindingRegistry.Почему я не могу реализовать CellEditorMouseEventMatcher с определенным CellEditor в Java NatTable?
Я использовал BodyCellEditorMouseEventMatcher, и он отлично работал. Но поскольку этот совпаден не рекомендуется, я больше не хочу его использовать. Поэтому он говорит, что я должен использовать CellEditorMouseEventMatcher, который я пробовал, но он не работает так, как я ожидаю. Документация на CellEditorMouseEventMatcher говорит следующее:
Осуществление {@link IMouseEventMatcher}, которая будет проверять, если редактирование
* должен быть активирован. Для этого можно указать метку региона к
* реагировать, кнопка мыши, которая была использована, чтобы нажать и если редактор
* зарегистрирован в ячейке, на которую мышь нажмите казнили. Если ни один регион
* указан указатель, отображается только кнопка мыши и наличие редактора ячейки
*.
Но я не могу использовать редактор ячеек в качестве параметра, так что означает последнее предложение? У меня есть возможность указывать в качестве параметров кнопку и/или метку области. Как я могу использовать этот EventMatcher для получения того же результата, что и с BodyCellEditorMouseEventMatcher? Я использую разные типы ячеек, поэтому важно, чтобы только поле со списком получало такое поведение.
Вот мой «устаревшим» Код:
private void editCombosOnSingleClick(final UiBindingRegistry uiBindingRegistry) {
uiBindingRegistry.registerFirstSingleClickBinding(new BodyCellEditorMouseEventMatcher(ComboBoxCellEditor.class),
new MouseEditAction());
}
Если вам нужна дополнительная информация, пожалуйста, дайте мне знать. Спасибо :)
Спасибо за ваш быстрый ответ! На самом деле почти все ячейки, которые я использую, редактируются. Но я не хочу, чтобы нормальные ячейки попадали в «режим редактирования» каждый раз, когда вы нажимаете на них (и это будет перезаписывать события выбора, которые я думаю). Все поля со списком имеют эту стрелку справа, которая открывает свои записи.Я хочу точно такое же поведение, если вы нажмете на них (так что вам не нужно «стрелять»). Знаете ли вы, как я могу это сделать? – mkaay
Это поведение по умолчанию. Не нужно делать что-то особенное для этого. –
Ох ... так что-то в моем коде перезаписывает эту функциональность ... Спасибо вам большое! :) – mkaay