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(帧);在Main构造函数中调用此方法。如何在其他类中调用此方法并使其有效?
答案 0 :(得分:1)
不确定这是否是您所追求的
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,这是非常低的级别,因此可能花一点力气才能正常工作。