Olá. Tenho um JInternalFrame dentro de um JDesktopPane e gostaria de saber se tem como eu vincular um comando do teclado (tipo alt+ f1, por exemplo) à ação de fechar apenas o JInternalFrame que está sendo exibido.
Obrigado.
Voce pode criar um menu com atalho no internalframe, ou associar uma ação ao internalframe, tipo assim
getActionMap().put(CLOSE_ACTION_NAME, new CloseJIFAction());
getInputMap(JComponent.WHEN_FOCUSED_COMPONENT).put(KeyStroke.getKeyStroke(KeyEvent.VK_F1,KeyEvent.CTRL_MASK),CLOSE_ACTION_NAME);
neste caso CTRL F1 executaria a ação de da classe CloseJIFAction.
Valeu.
No caso de acionar acao como vc disse, eu insiro esse codigo que vc mencionou dentro de um addKeyListener?
não esse código é inserido no internalframe:
suaInternalFrame.getActionMap().put(CLOSE_ACTION_NAME, new CloseJIFAction());
suaInternalFrame.getInputMap(JComponent.WHEN_FOCUSED_COMPONENT).put(KeyStroke.getKeyStroke(KeyEvent.VK_F1,KeyEvent.CTRL_MASK),CLOSE_ACTION_NAME);