Olá galera tudo beleza!?
Pessoal é o seguinte, eu quero que quando eu pressionar a tecla enter em cima dos botões eles realizam uma determinada função, bom beleza, isso eu consigo fazer, o problema é que eu consigo fazer a tecla Enter apenas realizar uma ação, por exemplo:
Se eu teclar enter em cima do botao OK, ele vai efetuar a ação do OK.
O problema é que quando pressiono enter com o tab andando até o cancelar ele realizar a mesma função do OK, procurei mas não achei como fazer o enter realizar 2 funções diferentes para cada botao que eles estiver clicado, abaixo esta os trechos dos códigos que envolvem essas ações
Aqui é onde construo minha tela e passo os botões para o ActionPerformd e para o KeyPressedpublic void Tela()
{
fieldHora.setColumns(3);
fieldData.setColumns(6);
panel.add(labelData);
panel.add(fieldData);
panel.add(labelHora);
panel.add(fieldHora);
panel.add(botaoOk);
panel.add(botaoCancelar);
panel.add(labelConfirmacao)
botaoOk.addActionListener(this);
botaoCancelar.addActionListener(this);
botaoOk.addKeyListener(this);
botaoCancelar.addKeyListener(this);
}
public void actionPerformed(ActionEvent e) {
if (e.getSource() == botaoOk)
{
if (cont == 0)
{
++cont;
fieldHora.disable();
fieldData.disable();
labelConfirmacao.setText("Agendamento realizado com sucesso");
repaint(); //atualizar frame
A.horarioAgendado(fieldData.getText(), fieldHora.getText());
A.mostrarData(true);
Thread thHora = A;
thHora.start();
}else{
JOptionPane.showMessageDialog(null, "Você já fez um agendamento")
}
}
if (e.getSource() == botaoCancelar)
{
dispose();
System.exit(0);
}
}
public void keyPressed(KeyEvent e) {
if(e.getKeyCode() == KeyEvent.VK_ENTER){
if (cont == 0)
{
++cont;
fieldHora.disable();
fieldData.disable();
labelConfirmacao.setText("Agendamento realizado com sucesso");
repaint(); //atualizar frame
A.horarioAgendado(fieldData.getText(), fieldHora.getText());
A.mostrarData(true);
Thread thHora = A;
thHora.start();
}else{
JOptionPane.showMessageDialog(null, "Você já fez um agendamento, para cancelar e fazer outro agendamento clique em Cancelar e abra-o novamente");
}
}
}
Desde já agradeço!