public void fullscreenKey(final JFrame frame)
{
k = KeyStroke.getKeyStroke(KeyEvent.VK_F1, 0);
getInputMap(WHEN_IN_FOCUSED_WINDOW).put(k, k.toString());
getActionMap().put(k.toString(), new AbstractAction()
{
public void actionPerformed(ActionEvent e)
{
fullscreen(!f1, frame);
f1 = !f1;
}
});
}
每当我将此方法调用到其他类时,什么也没有发生。由于 getInputMap 和 getActionMap,我无法将此方法设为静态。我用 Main main = new Main(); 调用main.fullscreenKey(frame);该方法在 Main 构造函数中调用。如何在其他类中调用此方法并使其工作?
最佳答案
不确定这是否是您想要的
public void fullscreenKey(JComponent comp, final JFrame frame)
{
k = KeyStroke.getKeyStroke(KeyEvent.VK_F1, 0);
comp.getInputMap(WHEN_IN_FOCUSED_WINDOW).put(k, k.toString());
comp.getActionMap().put(k.toString(), new AbstractAction()
{
public void actionPerformed(ActionEvent e)
{
fullscreen(!f1, frame);
f1 = !f1;
}
});
}
如果您正在寻找“全局”按键处理程序(即您想在应用程序中随时处理击键),您可以查看 Toolkit.addAWTEventListener ,这是非常低的级别,因此可能需要一些努力才能正常工作。
您还可以查看 KeyboardFocusManager (Java Global JFrame KeyListener)
关于java - 双击按键绑定(bind) Java,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12289005/