我想在我的NatTable中为所有单元实现一个MouseEvent,它们是通过ComboBoxCellEditor类实现的。如果在组合框上发生一次单击,则应打开包含条目的下拉框。为此,我在我的UiBindingRegistry中注册了FirstSingleClickBinding。为什么我不能在Java NatTable中使用特定的CellEditor实现CellEditorMouseEventMatcher?
我使用了BodyCellEditorMouseEventMatcher,它工作完美。但由于这个匹配器已被弃用,我不想再使用它了。所以它说我应该使用我尝试过的CellEditorMouseEventMatcher,但它不能像我期望的那样工作。 的CellEditorMouseEventMatcher的文档说以下内容:{@link IMouseEventMatcher}
实施,将检查是否 编辑
*应被激活。为此,它可以指定 区域标签
*反应上,用鼠标右键单击 ,如果一个编辑器是
*登记在其中执行鼠标 单击单元格。如果没有指定区域
*标签,则仅评估鼠标 按钮和存在单元编辑器
*。
但我不能使用单元格编辑器作为参数,所以最后一句是什么意思?我可以选择按钮和/或区域标签作为参数。我如何使用这个EventMatcher获得与BodyCellEditorMouseEventMatcher相同的结果?我使用不同类型的单元格,因此重要的是只有组合框的单元格才能获得这种行为。
这里是我的“过时”代码:
private void editCombosOnSingleClick(final UiBindingRegistry uiBindingRegistry) {
uiBindingRegistry.registerFirstSingleClickBinding(new BodyCellEditorMouseEventMatcher(ComboBoxCellEditor.class),
new MouseEditAction());
}
如果您需要了解更多信息,请让我知道。 谢谢:)
谢谢您的快速回复!实际上几乎所有我使用的单元都是可编辑的。但是我不希望正常单元格每次点击它时都进入“编辑模式”(并且它会覆盖我认为的选择事件)。 所有的组合框在右边都有这个小箭头,它们打开它们的条目。我想要完全相同的行为,如果你单击它们(所以你不必“瞄准”箭头)。你知道我能做到这一点吗? – mkaay
这是默认行为。不需要为此做特别的事情。 –
噢......所以我的代码中的某些东西会覆盖这个功能......迄今为止非常感谢! :) – mkaay