以下处理程序均未在按键时执行:
public class Try_KeyboardInput_01 {
private static final Logger log = LoggerFactory.getLogger(Try_KeyboardInput_01.class);
@SuppressWarnings("serial")
public static void main(String[] args) {
new PFrame() {
@Override
public void initialize() {
PPath circle = PPath.createEllipse(-100, -100, 200, 200);
getCanvas().getLayer().addChild(circle);
circle.addInputEventListener(new PBasicInputEventHandler() {
@Override
public void keyPressed(PInputEvent event) {
log.info("Key pressed on circle");
}
});
getCanvas().getLayer().addInputEventListener(new PBasicInputEventHandler() {
@Override
public void keyPressed(PInputEvent event) {
log.info("Key pressed on layer");
}
});
getCanvas().addInputEventListener(new PBasicInputEventHandler() {
@Override
public void keyPressed(PInputEvent event) {
log.info("Key pressed on canvas");
}
});
}
};
}
}
如何激活该功能?
更新
在我看到的一些演示中,可以从鼠标处理程序中打开键盘焦点。但是,如果计算机没有鼠标,或者默认情况下应该打开键盘处理,这是不可接受的。
如何显式打开键盘处理?
更新 2
仍然不明白,是否可以将键盘焦点设置在特定节点上(无需鼠标)。