Java JTable-在列末尾点击回车键后,不应移动到下一列
JTable中的默认行为似乎是,如果我到达列的最后一行并点击return,我将被带到下一列的第一行。有没有办法避免这种情况?请建议一种方法,我可以停留在同一列的最后一行。我还希望避免出现这样的情况:我被带到下一个专栏,然后检测到它并返回到上一个专栏,因为我有一些与之相关的侦听器。Java JTable-在列末尾点击回车键后,不应移动到下一列,java,swing,jtable,Java,Swing,Jtable,JTable中的默认行为似乎是,如果我到达列的最后一行并点击return,我将被带到下一列的第一行。有没有办法避免这种情况?请建议一种方法,我可以停留在同一列的最后一行。我还希望避免出现这样的情况:我被带到下一个专栏,然后检测到它并返回到上一个专栏,因为我有一些与之相关的侦听器。 非常感谢您的帮助。若要更改任何导航行为,请将默认导航操作替换为您自己的导航操作。最好包装默认设置:有条件地执行默认设置或自定义设置。差不多 Object key = table.getInputMap(JTab
非常感谢您的帮助。若要更改任何导航行为,请将默认导航操作替换为您自己的导航操作。最好包装默认设置:有条件地执行默认设置或自定义设置。差不多
Object key = table.getInputMap(JTable.WHEN_ANCESTOR_OF_FOCUSED_COMPONENT)
.get(KeyStroke.getKeyStroke("ENTER"));
final Action action = table.getActionMap().get(key);
Action custom = new AbstractAction("wrap") {
@Override
public void actionPerformed(ActionEvent e) {
int row = table.getSelectionModel().getLeadSelectionIndex();
if (row == table.getRowCount() - 1) {
// do custom stuff
// return if default shouldn't happen or call default after
return;
}
action.actionPerformed(e);
}
};
table.getActionMap().put(key, custom);
要更改任何导航行为,请将默认导航操作替换为您自己的导航操作。最好包装默认设置:有条件地执行默认设置或自定义设置。差不多
Object key = table.getInputMap(JTable.WHEN_ANCESTOR_OF_FOCUSED_COMPONENT)
.get(KeyStroke.getKeyStroke("ENTER"));
final Action action = table.getActionMap().get(key);
Action custom = new AbstractAction("wrap") {
@Override
public void actionPerformed(ActionEvent e) {
int row = table.getSelectionModel().getLeadSelectionIndex();
if (row == table.getRowCount() - 1) {
// do custom stuff
// return if default shouldn't happen or call default after
return;
}
action.actionPerformed(e);
}
};
table.getActionMap().put(key, custom);
使用BasicTableUI中的操作和这样的ActionEvent进行自定义操作是否明智table.getActionMap.getselectNextColumnCell.actionPerformednew ActionEvente.getSource、e.getID、EnterKeyInStrow;使用BasicTableUI中的操作和这样的ActionEvent进行自定义操作是否明智table.getActionMap.getselectNextColumnCell.actionPerformednew ActionEvente.getSource、e.getID、EnterKeyInStrow;