gpt4 book ai didi

java - 如何正确遍历 Nat 表中的单元格?

转载 作者:太空宇宙 更新时间:2023-11-04 10:28:54 24 4
gpt4 key购买 nike

我有一个简单的CustomTextCellEditor,它扩展了AbstractCellEditor

如果在单元格为空或位于单元格数据末尾时按下箭头键,我会尝试遍历单元格。

textFieldControl.addTraverseListener(new TraverseListener() {

@Override
public void keyTraversed(TraverseEvent e) {
switch (e.keyCode) {
case SWT.ARROW_DOWN:
commit(MoveDirectionEnum.DOWN, true);
break;
case SWT.ARROW_UP:
commit(MoveDirectionEnum.UP, true);
break;
case SWT.ARROW_LEFT:
if(textFieldControl.getText().length()==0 || textFieldControl.getCaretPosition() == 0 )
commit(MoveDirectionEnum.LEFT, true);
break;
case SWT.ARROW_RIGHT:
if(textFieldControl.getText().length()==0 || textFieldControl.getCaretPosition() == textFieldControl.getText().length() )
commit(MoveDirectionEnum.RIGHT, true);
break;
}
}
});

@Override
public boolean activateOnTraversal(IConfigRegistry configRegistry, List<String> configLabels) {
return true;
}

事实是,activateOnTraversal 永远不会被调用,虽然是的,当我在适当的时间按下箭头键时,它将焦点更改到所需的单元格,但它不会激活。

我错过了什么?

最佳答案

遍历是通过TAB触发的,而不是箭头键。如果您使用 KeyListener 而不是 TraversalListener 它应该可以工作。

TextCellEditor 已支持您尝试实现的目标。因此,您可以查看该实现以了解它是如何工作的。

要在遍历后激活下一个编辑器,您需要覆盖 AbstractCellEditor#activateOnTraversal() 以始终返回 true,或者将 EditConfigAttributes.ACTIVATE_EDITOR_ON_TRAVERSAL 配置为 DisplayMode#EDIT 为 true。这同样适用于 AbstractCellEditor#openAdjacentEditor()EditConfigAttributes.OPEN_ADJACENT_EDITOR

关于java - 如何正确遍历 Nat 表中的单元格?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50268132/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com