renzonuccitelli 10 de jan. de 2009
Em geral o enter não funciona porque para componentes de texte o Enter pode servir para outras coisas. Eu uso a tecla F2 e aí tudo funciona direito…
wagner_soares_camarg 10 de jan. de 2009
ola renzonuccitelli
mas pensando e funcionalidade, fica muitos mais facil na hora de um cadastro utilizar apenas o teclado.
de qualquer forma, agradeço!
abraço!
renzonuccitelli 10 de jan. de 2009
Sim, a tecla F2 fica no teclado, até onde eu lembro…
wagner_soares_camarg 10 de jan. de 2009
confuso, rsrsrsrs
abraço!
renzonuccitelli 10 de jan. de 2009
Vai um trecho de código então:
private void inicializarAcoesPadrao () {
this . getActionMap (). put ( "cadastrar" , new AbstractAction (){
@Override
public void actionPerformed ( ActionEvent e ) {
botaoCadastrar . doClick ();
}
});
this . getActionMap (). put ( "help" , new AbstractAction (){
@Override
public void actionPerformed ( ActionEvent e ) {
campoMensagemAjuda . setVisible ( ! campoMensagemAjuda . isVisible ());
int height = form . getParent (). getHeight ();
if ( campoMensagemAjuda . isVisible ()){
height += 74 ;
}
else {
height -= 74 ;
}
form . getParent (). setSize ( form . getParent (). getWidth (), height );
}
});
this . getInputMap ( JComponent . WHEN_ANCESTOR_OF_FOCUSED_COMPONENT ). put ( KeyStroke . getKeyStroke ( KeyEvent . VK_F2 , 0 ), "cadastrar" );
this . getInputMap ( JComponent . WHEN_ANCESTOR_OF_FOCUSED_COMPONENT ). put ( KeyStroke . getKeyStroke ( KeyEvent . VK_F1 , 0 ), "help" );
}
minha classe extendia um JPanel. Mas então, quando eu tentava executar a ação com VK_ENTER ele não funcionava. Quando coloquei F2 e outras teclas qua nao as de caracteres ele passou a funcionar. Talvez alguem pode responder porque isso acontece.
wagner_soares_camarg 10 de jan. de 2009
Vou começar a digerir o código.
complicado
DiegoMau 10 de jan. de 2009
vc quer quando o usuario digite algo em um campo texto aperte enter faça uma função correto??
faça um evento
1- key
2- keypressed
dentro do evento vc coloca o seguinte codigo:
if(evt.getKeyCode() == evt.VK_ENTER){
System.out.println(“Entrou na condição " +”\n "+ “consegui” );
}
se entrar na condição é pq está funcionaldo
espero ter ajudado
phpinheiro 10 de jan. de 2009
Você pode utilizar uma tecla para cada botao usando ActionMap. Veja este exemplo:
import java.awt.* ;
import java.awt.event.ActionEvent ;
import java.awt.event.KeyEvent ;
import javax.swing.* ;
public class ExemploActions extends JFrame {
public ExemploActions () {
Action okAction = new MessageAction ( "OK" , "Ação OK" );
Action cancelAction = new MessageAction ( "Cancelar" , "Ação Cancelar" );
Action helpAction = new MessageAction ( "Ajuda" , "Ação Ajuda" );
Action altAction = new MessageAction ( "Alt" , "Ação alt" );
JButton okButton = new JButton ( okAction );
Container c = getContentPane ();
c . setLayout ( new FlowLayout ());
c . add ( new JTextField ( 40 ));
c . add ( okButton );
c . add ( new JButton ( cancelAction ));
// getRootPane().setDefaultButton(okButton);
getRootPane (). getActionMap (). put ( "ok" , okAction );
getRootPane (). getInputMap (). put ( KeyStroke . getKeyStroke ( KeyEvent . VK_ENTER , 0 ), "ok" );
getRootPane (). getActionMap (). put ( "cancel" , cancelAction );
getRootPane (). getInputMap (). put ( KeyStroke . getKeyStroke ( KeyEvent . VK_ESCAPE , 0 ), "cancel" );
getRootPane (). getActionMap (). put ( "help" , helpAction );
getRootPane (). getInputMap (). put ( KeyStroke . getKeyStroke ( KeyEvent . VK_F1 , 0 ), "help" );
getRootPane (). getActionMap (). put ( "alt" , altAction );
getRootPane (). getInputMap (). put ( KeyStroke . getKeyStroke ( KeyEvent . VK_ALT , 0 ), "alt" );
setSize ( 640 , 480 );
setDefaultCloseOperation ( EXIT_ON_CLOSE );
}
@SuppressWarnings ( "serial" )
class MessageAction extends AbstractAction {
String _msg ;
MessageAction ( String name , String msg ) {
putValue ( NAME , name );
_msg = msg ;
}
@Override
public void actionPerformed ( ActionEvent arg0 ) {
JOptionPane . showMessageDialog ( ExemploActions . this , _msg );
}
}
public static void main ( String [] args ) {
new ExemploActions (). setVisible ( true );
}
}
Espero ter ajudado.
keller 11 de jan. de 2009
IMHO,
Eu extenderia a classe JButton e faria meu proprio JButton com um ActionMap ou KeyListener whatever escutando a tecla Enter. Entendeu?
Boa sorte!
wagner_soares_camarg 11 de jan. de 2009
obrigado galera
agora ja tenho um norte.
abraço a todos!