Jframe Teclas de atalho

3 respostas
D

Olá pessoal, estou tentando usar as teclas de atalho para abrir janelas Jframes, mas apenas a primeira tecla de atalho está dando certo. Poderiam me ajudar?

Código abaixo:

private void jButtonCaixaKeyPressed(java.awt.event.KeyEvent evt) {                                        
    // TODO add your handling code here:
    if (evt.getKeyCode() == KeyEvent.VK_F1) {
        Caixa caixa = new Caixa();
        caixa.setLocationRelativeTo(null);
        caixa.setVisible(true);
        
        
    }
}                                       

private void jButtonVendasKeyPressed(java.awt.event.KeyEvent evt) {                                         
    // TODO add your handling code here:
    if (evt.getKeyCode() == KeyEvent.VK_F2) {
        Vendaa venda = new Vendaa();
        venda.setLocationRelativeTo(null);
        venda.setVisible(true);
    }
}

3 Respostas

staroski

Para utilizar teclas de atalaho, a melhor forma é configurar os InputMap e ActionMap dos componentes.
Neste link tem um tutorial.

Jonathan_Medeiros

Eu tenho implementado teclas de atalho em um projeto antigo, mas eu trato de forma diferente, eu tenho um método onde eu configuro todas as teclas de atalho que eu quero utilizar:

Exemplo:

private void configTeclasAtalho() {
        rootPane.getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW).put(KeyStroke.getKeyStroke(KeyEvent.VK_ESCAPE, 0), "ESCAPE");
        rootPane.getRootPane().getActionMap().put("ESCAPE", new AbstractAction("ESCAPE") {
            @Override
            public void actionPerformed(ActionEvent e) {
                //Realiza alguma ação ao ser pressionado o ESC
            }
        });
        
        rootPane.getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW).put(KeyStroke.getKeyStroke(KeyEvent.VK_F1, 0), "F1");
        rootPane.getRootPane().getActionMap().put("F1", new AbstractAction("F1") {
            @Override
            public void actionPerformed(ActionEvent e) {
                //Realiza alguma ação ao ser pressionado o F1
            }
        });
}

Com isso basta fazer a chamada do método configTeclasAtalho() no construtor da classe, que já deve funcionar corretamente.

D

Vou ver aqui. Obrigada.

Criado 19 de outubro de 2018
Ultima resposta 19 de out. de 2018
Respostas 3
Participantes 3