無論是處理器的下方按鍵執行:如何在Piccolo2D中接收鍵盤事件?
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");
}
});
}
};
}
}
如何激活功能?
UPDATE
在一些演示我看,那個鍵盤焦點可以從鼠標處理程序內打開。但是如果電腦沒有鼠標,或者如果默認打開鍵盤處理,這是不可接受的。
如何明確打開鍵盤處理?
UPDATE 2
仍然不瞭解,如果是能夠設定鍵盤焦點特定節點上(不用鼠標)。
可以'setKeyboardFocus'根,然後處理事件或調度可以根據需要,對其他處理程序或節點。 * update 2 *不清楚,哪個節點預計會收到事件? – tenorsax
例如,一個圓圈。我可以將鼠標處理程序附加到代碼中的一個圓圈。如何將鍵盤處理程序附加到它? –
P.S.所以,你的意思是我應該創建2個處理程序:(1)根與調度程序,(2)另一個用於接收對象? –