Bom fui na Conexao java e gostei muito da palesta do Michael Nascimento sobre o Genisis mais fiquei com uma duvida aki…
No empresa que estou atualmente usasse muito keylistener e mouselistener eu certo objeto quando o usuario pressionar o Pagedown abre uma pesquisa e no mesmo objeto quando pressiona o ENTER faz outra coisa. Minha pergunta é como eu faço essa implementação utilizando o GENESIS??
embora eu conheca o genesis mt pouco, alguem fez exatamente essa pergunta no justjava na palestra do mister_m (vc talvez?), mas a ideia eh criar um Binder personalizado para esse seu componente e registrar atraves dele os InputListeners
mister_m
Nao sei se compreendi muito bem a pergunta, correa, mas pelo que parece o que você deveria ter eh um componente pra encapsular essas funcionalidades. Para usar o componente na aplicação com o modelo de programação do genesis, basta você criar um binder para ele.
Caso você queira fazer outras perguntas, além de poder perguntar aqui no fórum, o genesis possui uma lista de discussão, [email removido]. Para assiná-la, mande um email para [email removido] e responda ao email que o servidor lhe enviará.
correainfo
Mister_m
Sem abusar muito vc poderia me passar um exemplo (Se vc tiver) que quando pressionado a tecla page-down execute algo…
Obrigado desde ja…
mister_m
Correa,
O ideal para que voce possa compreender a questao eh voce me passar um exemplo de codigo do que voce estah querendo fazer para que possa explicar como adequa-lo ao genesis.
correainfo
Bom mister_m criei um exemplo simples que copia o q foi digitado na coluna1 para a coluna2. Na empresa eu utilizo muito isso se o usuario pressionar tal tecla faça isso se clicou em tal componente ou botao faça isso e no exemplo abaixo: implementei o mouselistener que foi utilizado no botao “copiar” e o keylistener q que foi utlizado na “coluna1” ,quando o usuario pressionar a tecla page-down executar o metodo Copiar()…
E no genesis como seria feito isso…
importjava.awt.Rectangle;importjava.awt.event.KeyEvent;importjava.awt.event.KeyListener;importjava.awt.event.MouseEvent;importjava.awt.event.MouseListener;importjavax.swing.JButton;importjavax.swing.JFrame;importjavax.swing.JPanel;importjavax.swing.JTextField;publicclassEventosextendsJFrameimplementsMouseListener,KeyListener{privatestaticfinallongserialVersionUID=1L;privateJPanelpainelPrincipal=null;privateJTextFieldcoluna1=null;privateJButtoncopiar=null;privateJTextFieldcoluna2=null;publicEventos(){super();initialize();}privatevoidinitialize(){this.setSize(385,267);this.setContentPane(getJContentPane());this.setTitle("Teste de Eventos");this.setVisible(true);}privateJPanelgetJContentPane(){if(painelPrincipal==null){painelPrincipal=newJPanel();painelPrincipal.setLayout(null);coluna1=newJTextField();coluna1.setBounds(newRectangle(26,28,152,20));coluna1.addKeyListener(this);coluna2=newJTextField();coluna2.setBounds(newRectangle(198,28,152,20));copiar=newJButton();copiar.setBounds(newRectangle(116,181,148,32));copiar.setText("Copia");copiar.addMouseListener(this);painelPrincipal.add(coluna1);painelPrincipal.add(copiar);painelPrincipal.add(coluna2);}returnpainelPrincipal;}/** * Metodo que copiar a coluna 1 para a 2 * */publicvoidCopiar(){coluna2.setText(coluna1.getText());}publicstaticvoidmain(String[]args){Eventosapp=newEventos();app.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);}/** * Eventos do Mouse */publicvoidmouseClicked(MouseEvente){if(e.getSource()==copiar){Copiar();}}publicvoidmouseEntered(MouseEvente){}publicvoidmouseExited(MouseEvente){}publicvoidmousePressed(MouseEvente){}publicvoidmouseReleased(MouseEvente){}/** * Eventos do Teclado */publicvoidkeyPressed(KeyEvente){if(e.getSource()==coluna1){if(e.getKeyCode()==KeyEvent.VK_PAGE_DOWN){Copiar();}}}publicvoidkeyReleased(KeyEvente){}publicvoidkeyTyped(KeyEvente){}}
Fico no aguardo
mister_m
Correa,
No seu exemplo especifico, JTextField jah possui um mecanismo para disparar acoes, o ActionEvent. Voce deveria associar essas teclas com este evento.
O genesis atualmente nao faz binding entre Action e JTextField. Criei um issue para fazer isso de forma automatica. No entanto, eh bem simples fazer hoje.