내 프로그램의 모든 버튼에 대해 바로 가기를 만들고 싶은 프로그램을 만들고 있습니다. 예를 들어, Ctrl + A를 실행하는 버튼은 1키 바인딩 및 동작 맵을 사용하여 Java 용 버튼 단축키
나는 이러한 단축키 변경 사용자에게되고 싶은
그래서 이것은 내가 이것들을 원하기 때문에 지금
InputMap IM = component.getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW);
IM.put(KeyStroke.getKeyStroke(KeyEvent.VK_B, InputEvent.CTRL_DOWN_MASK |
InputEvent.ALT_DOWN_MASK), "BUTTON ONE ID");
ActionMap actionMap = component.getActionMap();
actionMap.put("BUTTON ONE ID", new AbstractAction() {
@Override
public void actionPerformed(ActionEvent e) {
actionListener.actionPerformed(e);
}
});
바인딩 키를 추가 사용하고있는 코드는 사용자가 변경할 수 있기를 원한다면, 세 번째 줄에 "BUTTON ONE ID"를 사용하여 정보를 얻을 수 있기를 원합니다. 나는 그것을 위해 입력 한 키 및 바로 가기 Ctrl 키 또는 Alt를 보유 할 필요가 있는지 여부를 알 수 있도록하려면
는 그래서 난 다음 코드
if("BUTTON ONE ID"){
//print KeyEvent/keyCode info and if we need to hold ctrl, alt or shift?
//and then i want to be able to change the key bindings
}
를 원하는 것 "BUTTON ONE ID"를 사용하여이 작업을 수행하거나이를 수행하는 더 좋은 방법입니다. 감사합니다.
난 당신이 상관 할 이유에 골동품 바인딩을 업데이트합니다. 'Action'의'actionPeformed' 메소드가 트리거 될 때, 당신은 그것을합니다. 당신이 바꾸고 싶은 것은 행동을 촉발시키는 바인딩입니다. – MadProgrammer
예 키 바인딩을 변경하여 사용자가 설정 한 기본 키를 사용하지 않아도되도록하고 싶습니다. – cmptUser
좋아요, 그렇다면 어떻게 키 스트로크를 캡쳐하는 법을 알아야합니까? 2 - 기존 바인딩을 제거합니다. 3 새로운 바인딩을 추가하십시오. 바인딩을 만드는 방법을 이미 알고 있으므로 세 번째 단계는 비교적 간단해야하지만 – MadProgrammer