【发布时间】:2013-11-30 18:18:33
【问题描述】:
在我的主类中,我最初是从创建 java 框架开始的。后来,我从另一个名为“keybinding”的类创建了一个新对象,并将其传递给 JFrame。然后它将某些键的操作映射应用到 JFrame 的 根窗格。
我之前在教育 IDE BlueJ 中编写此应用程序,该代码运行良好。但我正在将其移至常规 IDE,在本例中为 JDeveloper。除了 this 键绑定之外,所有代码都可以工作。
使用下面的代码,使用 JDev,调用 getRootPane() 返回 null。
Stage.java
jf = new JFrame("The Title");
jf.setSize(800,600);
//etc
Keybinding keys = new Keybinding(this);
Keybinding.java
KeyStroke pressLeft = KeyStroke.getKeyStroke("LEFT");
stage.jf.getRootPane().getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW)
.put(pressLeft, "pressLeft");
【问题讨论】:
标签: java swing jframe key-bindings keystroke