在applet中添加键盘快捷键

时间:2012-01-20 00:46:50

标签: java applet

如何将键盘快捷键添加到Java小程序?

我有一项任务(我正在攻读计算机科学荣誉学位)让我的名字旋转一圈。 我使用了无限循环,每次我想结束时,我都要去任务管理器并结束程序。我可以添加退出小程序的快捷方式吗?

例如,如果我按空格键,它将变为程序的另一部分。

我查看了甲骨文网站上的"How to Use Key Bindings",但我无法理解。

2 个答案:

答案 0 :(得分:3)

如果您正在使用Swing(如果您正在创建JApplet),那么是,Key Bindings是可行的方法。他们怎么会让你感到困惑?

顺便说一句,我知道这与你的问题没有直接关系,但是如果你的applet是Swing JApplet,我不会使用无限循环来做动画,而是我会使用Swing计时器。如果你使用无限循环,你必须注意a)在后台线程中执行无限循环,以及b)在Swing事件调度线程(或EDT)的循环内进行大多数Swing调用,否则你可能会冻结主摆动线程。 Swing Timer为您完成所有这些工作,因此更容易使用。

答案 1 :(得分:1)

所有该教程都说您需要KeyStroke,某些键ObjectAction来创建键绑定。

要创建KeyStroke,请查看静态helper methods,他们应该解释如何获得所需的正确KeyStroke

您可以使用任何旧版Object作为密钥(Object key = new Object())。

您需要的最后一件事是创建Action。我建议扩展AbstractAction,因为它已经为您实现了Action的许多方法。

要将密钥绑定放在一起,请执行以下操作:

JComponent c = ...
KeyStroke keyStroke = ...
Object key = ...
Action a = ...

c.getInputMap().put(keyStroke, key);
c.getActionMap().put(key, a);