2014-12-11 1 views
1

스윙 애플릿에서 F10 키의 프레임 초점을 비활성화 할 필요 최소화, 극대화) 어쨌든 이것을 막을 수 있습니까? 나는 이것이 바로 Windows 지름길이라는 것을 알고 있습니다. 멈출 수 있습니까?는 <kbd>F10</kbd> 업데이트 작품 파인 바 가까이 포함 (메뉴 모음에 포커스를 이동 but.my 내가 눌러 database.whenever에 업데이트 데이터를 바로 가기로 내가 <kbd>F10</kbd>을 사용하고

+0

물론입니다. [Java Web Start] (http://stackoverflow.com/tags/java-web-start/info)를 사용하여 애플릿 *을 자유롭게 실행할 수 있습니다. –

답변

3

JMenuBar에서 WHEN_IN_FOCUSED_WINDOW 동작을 제거하려고 할 수 있습니다. 그냥 코드에이 줄을 추가 :

menuBar.getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW).put(KeyStroke.getKeyStroke("F10"), "none"); 

menuBarJMenuBar 구성 요소에 대한 참조입니다.

희망이 도움이됩니다.

편집 :

사실, 경우에 위의 솔루션이 작동하지 않습니다 JMenuBar를 사용하지 않는. 또 다른 해결책은 비어있는 동작을 만들고이를 사용하여 F10 키를 바인딩하는 것입니다. (Key Bindings 참조). frameJFrame 구성 요소가

//create an empty action which do nothing 
Action emptyAction = new AbstractAction(){ 
    public void actionPerformed(ActionEvent e) 
    { //do nothing here }}; 

//bind F10 with the empty action 
KeyStroke f10 = KeyStroke.getKeyStroke("F10"); 
frame.getRootPane().getInputMap(JComponent.WHEN_ANCESTOR_OF_FOCUSED_COMPONENT).put(f10, "F10"); 
frame.getRootPane().getActionMap().put("F10", emptyAction); 

입니다 : 여기

은 예입니다.

+0

나는 여기에서 이미 이것을 보았다. http://www.javalobby.org/java/forums/t18687.html 이유 나는 다시 묻고있다. 나는 JMenuBar.i만을 사용하고 있지 않다. JFrame을 사용하고있다. Form.then을 어떻게 사용할 수 있는가? 코드. 아무도 내가이 일을하도록 도울 수있어. – user3820014

+0

죄송합니다, 세부 사항을 알지 못했습니다. 내 편집을 참조하십시오. – blackbishop

+0

나는 f10.i를 눌러 데이터베이스에 레코드를 삽입하는 동안 액션을 취해야한다. f10을 누른 후 모든 텍스트 필드를 비워두고 커서를 첫 번째 텍스트 field.at에 놓는다. 동시에 모든 데이터를 데이터베이스에 삽입한다. .그래서 내가 무엇을해야하니? – user3820014

관련 문제