Estou com um seguinte problema: Estou criando uma calculadora dentro de um sistema onde cada botão tem o seu evento específico. Até ai blz. Quando vou implementar as teclas do teclado numérico através do método doClick(), da primeira vez ocorre tudo certo. Quando eu fecho a calculadora (ainda com o sistema aberto) e vou executa-la de novo, parece que ela fica meio perdida no doClick(); ela tenta executar o método de acordo com a quantidade de vezes que eu já abri a calculadora. Alguém saberia como tratar isso ?
segue o fonte:
/**
* This method initializes
*
*/
public CalcFolha() {
super();
eventosDeOperacao(); // este é o método que chama a "configuracao" para o doClick();
initialize();
}
..
public void eventosDeOperacao() { // este método cria as acoes para o botao
AWTEventListener listener = new AWTEventListener() {
public void eventDispatched(AWTEvent ev) {
if (ev instanceof KeyEvent) {
KeyEvent ke = (KeyEvent) ev;
if (ke.getID() == KeyEvent.KEY_PRESSED) {
pressedOp(ke.getKeyCode());
}
}
}
};
Toolkit.getDefaultToolkit().addAWTEventListener(listener, AWTEvent.KEY_EVENT_MASK);
}
..
private void pressedOp(int code) { // este executa as acoes
switch (code) {
case KeyEvent.VK_ADD:
System.out.println("+");
getBtnSoma().doClick(); // executa a soma
break;
case KeyEvent.VK_SUBTRACT:
System.out.println("-");
getBtnSub().doClick(); // executa a subtracao
break;
case KeyEvent.VK_MULTIPLY:
System.out.println("*");
getBtnMult().doClick(); // executa a multiplicacao
break;
case KeyEvent.VK_DIVIDE:
System.out.println("/");
getBtnDiv().doClick(); // executa a divisao
break;
default:
// ignore
break;
}
}