Capturar tecla - Java

4 respostas
eclipsejava
TavinhoBRMG

Pessoal estou querendo capturar uma tecla e a partir dela chamar um método. O problema é que a maioria dos exemplos na internet usam JFrame e eu estou usando JOptionPane. A maioria dos exemplos que achei são assim:

public void KeyPressed(KeyEvent e){
int tecla = e.getKeyCode();
}

O problema é o parâmetro. Preciso chamar esse método em outra classe, a Gui. Porém, quando chamo não sei o que colocar no parâmetro. Já tentei criar uma variável KeyEvent “e” e depois jogá-la como parâmetro, mas o programa diz que é necessária a inicialização da mesma. Quando inicializo (null) ele dá erro ao compilar. Alguém poderia me ajudar? Quero chamar esse método no main.

4 Respostas

TerraSkilll

Qual seu objeto exatamente ao capturar a tecla digitada? O que espera fazer com o valor da tecla?

O JOptionPane geralmente é uma janela modal simplificada. Você pode tentar estendê-la mas, se está tentando criar uma aplicação com uma janela com várias funcionalidades, melhor usar outras classes mais apropriadas, como JFrame ou JDialog.

Abraço.

TavinhoBRMG

Olá obrigado pela resposta. Meu objetivo é o seguinte: criar um programa que exibindo um menu cheio de opções como: “1 - Cadastrar” capture a tecla e compare, e se ela for neste caso, igual a 1, então o programa vai chamar o método de cadastro, nada muito complicado. Esse programa se trata de uma atividade onde um dos requerimentos é o uso de JOptionPane.

TerraSkilll

O exercício exige que você use captura de teclas (keypress, etc), ou é só algo que você acharia legal fazer?

Se não é obrigatório, recomendo não complicar e usar o JOptionPane.showInputDialog, capturando o que o usuário validar e executando as ações de acordo. Se ele digitar 1, vai pra “Cadastrar”, e assim por diante. Se ele digitar uma opção inválida, só exibir as mesmas opções de novo. Nesse momento, foque mais em concluir o exercício.

Note que, sem precisar capturar teclas ou estender o JOptionPane, você pode fazer várias coisas relativamente complexas. Veja os exemplos na documentação (link).

Abraço.

TavinhoBRMG

Não é um requerimento, refletindo aqui realmente não tem necessidade de complicar tanto :rofl::sweat_smile: Obrigado pela ajuda!!

Criado 4 de junho de 2020
Ultima resposta 5 de jun. de 2020
Respostas 4
Participantes 2