我的目标是自定义PrintScreen
键绑定。
但是,我需要将我的应用程序放在焦点上才能工作。
我正在使用inputmap和actionmap来执行此操作。我使用的参数是Component.WHEN_IN_FOCUSED_WINDOW
。以下是我的代码,但它不起作用。
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
jButton1.getInputMap().put(KeyStroke
.getKeyStroke(KeyEvent.VK_PRINTSCREEN,2),"ps");
jButton1.getActionMap().put("ps",new AbstractAction() {
public void actionPerformed (ActionEvent e){
//int i;
i++;
System.out.println(i);
}
});
}
如果没有键绑定,那么当应用程序不在焦点时如何自定义按键响应?
答案 0 :(得分:2)
最高级InputMap
是Component.WHEN_IN_FOCUSED_WINDOW
,正如它所说的那样,Component
位于焦点窗口时。如果您的窗口没有聚焦,您将不会收到任何输入事件。
此外,在您的示例中,您没有将参数传递给getInputMap
,因此您将获得默认参数(Component.WHEN_FOCUSED
)。
答案 1 :(得分:2)
您可以使用setDefaultButton
,默认情况下绑定 Enter 键。另请参阅How to Use Key Bindings。