Java JTable-在列末尾点击回车键后,不应移动到下一列

Java JTable-在列末尾点击回车键后,不应移动到下一列,java,swing,jtable,Java,Swing,Jtable,JTable中的默认行为似乎是,如果我到达列的最后一行并点击return,我将被带到下一列的第一行。有没有办法避免这种情况?请建议一种方法,我可以停留在同一列的最后一行。我还希望避免出现这样的情况:我被带到下一个专栏,然后检测到它并返回到上一个专栏,因为我有一些与之相关的侦听器。 非常感谢您的帮助。若要更改任何导航行为,请将默认导航操作替换为您自己的导航操作。最好包装默认设置:有条件地执行默认设置或自定义设置。差不多 Object key = table.getInputMap(JTab

JTable中的默认行为似乎是,如果我到达列的最后一行并点击return,我将被带到下一列的第一行。有没有办法避免这种情况?请建议一种方法,我可以停留在同一列的最后一行。我还希望避免出现这样的情况:我被带到下一个专栏,然后检测到它并返回到上一个专栏,因为我有一些与之相关的侦听器。
非常感谢您的帮助。

若要更改任何导航行为,请将默认导航操作替换为您自己的导航操作。最好包装默认设置:有条件地执行默认设置或自定义设置。差不多

    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;