java - 更改 ENTER 键功能

标签 java swing jtable key-bindings

我想更改 JTable 上 ENTER 键的默认操作,所以我使用了以下代码:

table.getInputMap(JComponent.WHEN_ANCESTOR_OF_FOCUSED_COMPONENT)
        .put(KeyStroke.getKeyStroke(KeyEvent.VK_ENTER, 0), "Enter");
table.getActionMap().put("Enter", new AbstractAction() {
    private static final long serialVersionUID = 1L;
    public void actionPerformed(ActionEvent ae) {
        //my action
    }
}

Tt 正常工作。我现在想要的是在我的操作之后立即更改行。也就是说,执行回车键的默认 Action 。

最佳答案

默认Action ENTER 键是 "selectNextRowCell"。如图here ,您可以获得对原始 Action 的引用并在您的新处理程序中调用。

String name = "selectNextRowCell";
Action action = table.getActionMap().get(name);
…
public void actionPerformed(ActionEvent ae) {
    action.actionPerformed(new ActionEvent(table, ActionEvent.ACTION_FIRST, name));
}

关于java - 更改 ENTER 键功能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20592523/

相关文章:

java - 对 JTable 的 setDefaultRenderer 方法的混淆

java - 为什么 AUTO_RESIZE_LAST_COLUMN 的作用与 AUTO_RESIZE_ALL_COLUMNS 类似?

java - 如何使用 TableHeader 渲染器

java - 仅在级别为调试时打印堆栈跟踪

java - apache.commons.math3 - 如何使用线性规划?

java - JFrame 组件的这种奇怪的延迟是什么?

Java从另一个线程更新jtable行

java - 如何使用正则表达式在 jsoup 文档中获取电话号码

java - 在 Android 中检索应用程序包和版本

Java:大量的MouseListeners与像素/网格划分相比如何?