분명히이 질문에 before과 before 및 before이 표시되지만 문제가 해결되지 않았거나 이해할 수없는 언어를 사용하고있는 것입니다.InputMap - 키 반복을 모니터링하지 않고 키를 모니터링하는 키 입력을 등록하십시오.
나는 JComponent.WHEN_IN_FOCUSED_WINDOW
를 사용하여 키보드 액션을 등록해야하므로 KeyListener
은 하지 대안입니다. 커서 키를 누른 상태에서 키를 눌렀다가 놓으면 추적해야합니다. 내장 된 키 반복으로 인해 여러 번 누르거나 발사 할 수 없습니다. 나는 키가 물리적으로 눌려지고 눌려지는 것을 정말로 알고 싶다. 예 : 누를 때 타이머를 시작하고이 출시되면 타이머를 중지합니다 (가상 키 반복으로 인해 타이머를 수십 번 시작하고 중지하지 마십시오).
나는 이것이 OS X에서 올바르게 작동했다고 믿지만, 지금은 Linux (OpenJDK 7)에있다.
어떻게?
1. AWTEventListener에서 반환되는 whats, 반복 지연이 있습니다. 이것은 Native OS에서 /에서 설정하는 일부입니다. 2. 스윙 타이머가 무언가를 해결하지 못합니다. – mKorbel
@mKorbel - 타이머는 릴리스 이벤트를 건너 뛰기 위해서만 필요합니다. 반복의 일부입니다. 이 경우 _same time stamp_ 키를 누른 다음 릴리스가옵니다. 따라서 적어도 1 밀리 초의 지연이있는 한이 방법이 효과적이므로 OS의 주요 반복 속도가 실제로 무엇인지는 중요하지 않습니다. 중요한 것은 'ActionPress'가 먼저 출시되어 이전 출시 이벤트를 '무효화'할 수 있다는 것입니다. –