【发布时间】:2020-01-22 08:01:50
【问题描述】:
我正在尝试为 JTree 重新绑定 F2 键,如此处所述https://docs.oracle.com/javase/tutorial/uiswing/misc/keybinding.html。代码如下:
System.out.println(DataModelTree.getInputMap(JComponent.WHEN_FOCUSED).get(KeyStroke.getKeyStroke("F2")));
//This gives string "startEditing"
DataModelTree.getActionMap().put("startEditing", new javax.swing.AbstractAction() {
public void actionPerformed(java.awt.event.ActionEvent e) {
System.out.println("F2 pressed");
}
});
也试过这个变种:
DataModelTree.getActionMap().put(DataModelTree.getInputMap(JComponent.WHEN_FOCUSED).get(KeyStroke.getKeyStroke("F2")), new javax.swing.AbstractAction() {
public void actionPerformed(java.awt.event.ActionEvent e) {
System.out.println("F2 pressed");
}
});
尝试创建单独的非匿名操作类。尝试初步删除 InputMap 和父 InputMap 中的条目。尝试在其他模式下重新绑定:WHEN_ANCESTOR_OF_FOCUSED_COMPONENT 和 WHEN_IN_FOCUSED_WINDOW。没有任何效果。 JTree 键绑定保持不变。
请帮忙。
【问题讨论】:
标签: java swing key-bindings jtree