어느 핸들러의 아래에 키 누름에 실행 :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.
. * update 2 *가 명확하지 않습니다. 어떤 노드가 이벤트를 수신 할 것으로 예상됩니까? – tenorsax
예 : 원입니다. 마우스 처리기를 코드의 원에 연결할 수 있습니다. 키보드 처리기를 연결하는 방법? –
P. 그래서, 당신은 2 개의 핸들러를 생성해야한다는 것을 의미합니다 : (1) 디스패처를 가진 루트와 (2) 객체를 받기위한 또 다른 핸들러? –