2013-06-29 5 views
0

키 수신기와 jtabbed 창을 사용하고 있으며 키보드의 왼쪽 및 오른쪽 키를 사용할 때마다 탭 사이를 전환합니다. 실제로 탭 중 하나에서 화살표 키를 사용하고 있기 때문에 이것은 매우 짜증나게합니다. 자바에서 "스위치 탭"키 입력을 끄는 방법이 있습니까? JTabbed 창에서 키 입력 및 전환 탭을 읽는 중

KeyListen keylistener = new KeyListen(); 
    MainGUI.MainTabbedPane.addKeyListener(keylistener); 
    MainGUI.MainTabbedPane.getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW).put(KeyStroke.getKeyStroke("LEFT"), "none"); 
    MainGUI.MainTabbedPane.getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW).put(KeyStroke.getKeyStroke("RIGHT"), "none"); 
+0

keyListeners를 전혀 사용하지 않아야합니다. (무엇을하고 있습니까?) 대신 사용자 정의 keyBinding을 사용하십시오. – kleopatra

답변

1

예는 키 바인딩의 등록을 취소해야합니다, 당신이 뭔가 당신이 How to use KeyBindings에서 살펴 봐야 할 수도 있습니다

tabComponent.getInputMap(JComponent.WHEN_FOCUSED).put(KeyStroke.getKeyStroke("LEFT"), "none"); 
tabComponent.getInputMap(JComponent.WHEN_FOCUSED).put(KeyStroke.getKeyStroke("RIGHT"), "none"); 

처럼 만들 수 있습니다 사전에 감사합니다. KeyListener를 대신 사용하는 것은 추천하지 않습니다. KeyBindings를 사용하십시오. 먼저 포커스가 있어야하고 모든 키에 대한 키리스트가 있고 특정 키에 대한 키 바인딩이 있어야합니다.

+0

정말 고마워요. – user2535456

+0

그래서 내 프로그램이 여전히 작동하지 않습니다. 왜 내가 작동하지 않을지에 대해 더 많은 통찰력을 줄 수 있는지 궁금합니다. (원본 게시물에 게시 된 코드) @nachokk – user2535456

+0

@ user2535456 죄송합니다. 업데이트해야합니다. 이제 작동 할 것입니다. – nachokk