Daniel_Girotto 6 de mai. de 2011
Boa Noite
Para a combinação de teclas veja este link.
http://download.oracle.com/javase/tutorial/uiswing/misc/keybinding.html
Espero que ajude!
bulhufas 9 de mai. de 2011
Olá, andei fazendo pesquisas e encontrei a solução. Agradeço quem buscou ajudar e compartilho a solução com os demais do grupo.
Atenciosamente.
import java.awt.Container ;
import java.awt.FlowLayout ;
import java.awt.event.ActionEvent ;
import java.awt.event.KeyEvent ;
import javax.swing.AbstractAction ;
import javax.swing.Action ;
import javax.swing.JButton ;
import javax.swing.JFrame ;
import javax.swing.JOptionPane ;
import javax.swing.JTextField ;
import javax.swing.KeyStroke ;
/**
*
* @author Modificado por Bulhufas. Copiado e modificado de exemplo na internet.
* @version 09/05/2011
*/
public class Exemplo extends JFrame {
private static final long serialVersionUID = 54518510L ;
private StringBuilder ACAO_OK = new StringBuilder ( "Acao OK" );
private StringBuilder ACAO_CANCELAR = new StringBuilder ( "Acao CANCELAR" );
private StringBuilder ACAO_AJUDA = new StringBuilder ( "Acao AJUDA" );
private StringBuilder ACAO_FECHAR = new StringBuilder ( "Acao FECHAR" );
/**
*
*/
public Exemplo () {
Action okAction = new MessageAction ( "OK" , ACAO_OK . toString ());
Action cancelAction = new MessageAction ( "Cancelar" , ACAO_CANCELAR . toString ());
Action helpAction = new MessageAction ( "Ajuda" , ACAO_AJUDA . toString ());
Action closeAction = new MessageAction ( "Fechar" , ACAO_FECHAR . toString ());
JButton okButton = new JButton ( okAction );
Container container = getContentPane ();
container . setLayout ( new FlowLayout ());
container . add ( new JTextField ( 25 ));
container . add ( okButton );
container . 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 ( "close" , closeAction );
getRootPane (). getInputMap (). put ( KeyStroke . getKeyStroke ( KeyEvent . VK_W , KeyEvent . CTRL_MASK ), "close" );
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" );
setSize ( 600 , 500 );
setDefaultCloseOperation ( EXIT_ON_CLOSE );
}
/**
*
*/
private class MessageAction extends AbstractAction {
private static final long serialVersionUID = 51891315L ;
private String mensagem ;
MessageAction ( String name , String msg ) {
putValue ( NAME , name );
mensagem = msg ;
}
/**
*
* @param evt
*/
@Override
public void actionPerformed ( ActionEvent evt ) {
if ( mensagem . equalsIgnoreCase ( ACAO_OK . toString ())) {
doOKAction ();
} else if ( mensagem . equalsIgnoreCase ( ACAO_FECHAR . toString ())) {
doFecharAction ();
} else if ( mensagem . equalsIgnoreCase ( ACAO_CANCELAR . toString ())) {
doCancelarAction ();
} else if ( mensagem . equalsIgnoreCase ( ACAO_AJUDA . toString ())) {
doAjudaAction ();
}
}
}
/**
*
*/
private void doOKAction () {
JOptionPane . showMessageDialog ( Exemplo . this , "ACAO OK" );
}
/**
*
*/
private void doAjudaAction () {
JOptionPane . showMessageDialog ( Exemplo . this , "ACAO AJUDA" );
}
/**
*
*/
private void doFecharAction () {
JOptionPane . showMessageDialog ( Exemplo . this , "ACAO FECHAR" );
dispose ();
}
/**
*
*/
private void doCancelarAction () {
JOptionPane . showMessageDialog ( Exemplo . this , "ACAO CANCELAR" );
}
/**
*
* @param args
*/
public static void main ( String ... args ) {
new Exemplo (). setVisible ( true );
}
}