Boa tarde galera, sou novo aqui no GUJ, então qualquer coisa me desculpem.
Estou com uns problemas na aplicação PDV que estou desenvolvendo no netbeans pra facul, fiz uma tela de venda com alguns atalhos pra facilitar pro usuario, de inicio funcionam bem, mas os problemas começam ( acho ) quando aciono o atalho das formas de pagamento que é aberto uma outra tela com mais atalhos ( até ai tudo bem … ), quando fecho esta tela ( das formas de pagamento ) os atalhos da tela de venda não funcionam, continua com os atalhos da tela de forma de pagamento. Não estou conseguindo achar o erro, se puderem me ajudar agradeço muito. Segue um trecho do codigo.
public Tela_ComprasVendas_Cadastrar_Venda() {
initComponents();
setLocationRelativeTo(null);
//ABRIR COM TELA MAXIMIZADA
setExtendedState(MAXIMIZED_BOTH);
EventQueue queue = new EventQueue() {
protected void dispatchEvent(AWTEvent event) {
super.dispatchEvent(event);
// o KeyEvent captura todos os eventos da tela, posição do mouse, teclas pressionadas, e etc
// atraves do maskKey.
// quando uma tecla é pressionada gera uma mask
String a[];
String tecla[];
//SE O EVENTO NÃO FOR VAZIO
if (!event.paramString().equals("")) {
//IMPRIME OS 5 PRIMEIROS CARACTERES
// SE OS 5 PRIMEIROS CARACTERES FOR = A KEY_P
if (event.paramString().substring(0, 5).equals("KEY_P")) {
//UTILIZA O METODO split QUE SEPARA AS STRING BASEADAS EM CARACTERES QUE NO CASO É A , (VIRG)
//POR EXEMPLO PEGA A LINHA ( KEY_PRESSED,keyCode=115,keyText=F4,keyChar=Indefinid...) E SEPARA
// NAS VIRGULAS ARMAZENANDO EM POSIÇÕES NO VETOR
a = event.paramString().split(",");
//UTILIZA O METODO split QUE SEPARA AS STRING BASEADAS EM CARACTERES QUE NO CASO É A = (IGUAL)
//POR EXEMPLO PEGA A LINHA (keyCode=115) E SEPARA
// NO IGUAL ARMAZENANDO EM POSIÇÕES NO VETOR
tecla = a[1].split("=");
switch (Integer.parseInt(tecla[1])) {
case 112: //F1
//BOTÃO SALVAR
Tela_ComprasVendas_FormaPagamento_Venda pag = new Tela_ComprasVendas_FormaPagamento_Venda();
pag.setVisible(true);
break;
case 113: //F2
JOptionPane.showMessageDialog(null, "Marcar na conta ....");
break;
case 114: //F3
try {
Runtime.getRuntime().exec("calc.exe");
} catch (IOException e) {
e.printStackTrace();
}
break;
case 115: //F4
Tela_DadosMestre_Pesquisa_Clientes clientes = new Tela_DadosMestre_Pesquisa_Clientes();
clientes.setVisible(true);
break;
case 116: //F5
JOptionPane.showMessageDialog(null, "Pressionou F5!");
break;
default:
break;
}
}
}
}
};
Toolkit.getDefaultToolkit().getSystemEventQueue().push(queue);
}
E no construtor
public static void main(String args[]) {
/*
* Set the Nimbus look and feel
*/
//<editor-fold defaultstate="collapsed" desc=" Look and feel setting code (optional) ">
/*
* If Nimbus (introduced in Java SE 6) is not available, stay with the
* default look and feel. For details see
* http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html
*/
try {
for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) {
if ("Nimbus".equals(info.getName())) {
javax.swing.UIManager.setLookAndFeel(info.getClassName());
break;
}
}
} catch (ClassNotFoundException ex) {
java.util.logging.Logger.getLogger(Tela_ComprasVendas_Cadastrar_Venda.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
} catch (InstantiationException ex) {
java.util.logging.Logger.getLogger(Tela_ComprasVendas_Cadastrar_Venda.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
} catch (IllegalAccessException ex) {
java.util.logging.Logger.getLogger(Tela_ComprasVendas_Cadastrar_Venda.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
} catch (javax.swing.UnsupportedLookAndFeelException ex) {
java.util.logging.Logger.getLogger(Tela_ComprasVendas_Cadastrar_Venda.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
}
//</editor-fold>
/*
* Create and display the form
*/
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new Tela_ComprasVendas_Cadastrar_Venda().setVisible(true);
}
});
Toolkit.getDefaultToolkit().addAWTEventListener( new AWTEventListener()
{
public void eventDispatched(AWTEvent e)
{
}
}, AWTEvent.KEY_EVENT_MASK);
}
esta desta forma nas duas telas.
Outra duvida: Como anexo arquivos ? queria anexar a parte do projeto pra voces visualizarem melhor.
Obrigado.