Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.lang.java.programmer > #6895

Re: event listener (how to)

From markspace <-@.>
Newsgroups comp.lang.java.programmer
Subject Re: event listener (how to)
Date 2011-08-08 20:06 -0700
Organization A noiseless patient Spider
Message-ID <j1q88d$doa$1@dont-email.me> (permalink)
References <e509c046-a524-4a27-ab4f-b6291ff1f331@glegroupsg2000goo.googlegroups.com>

Show all headers | View raw


On 8/8/2011 7:16 PM, wee wrote:
> hello,
>
> i added an actionListener to a JButton. it works well when i click it
> with a mouse. if i put the focus on the button using the tab key and
> press the keyboard enter key, nothing happens. my question then is,
> how can i make the JButton react to both mouse click and the keyboard
> enter key? do i need to add a keypressed listener on top of the
> actionListener? any help would be appreciated.


I think you want to use a key binding:

<http://download.oracle.com/javase/tutorial/uiswing/misc/keybinding.html>


package test;

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.AbstractAction;
import javax.swing.Action;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.KeyStroke;
import javax.swing.SwingUtilities;

public class EventTest {

     public static void main( String[] args )
     {
         SwingUtilities.invokeLater( new Runnable()
         {

             public void run()
             {
                 createGui();
             }
         } );
     }

     private static void createGui() {
         JFrame frame = new JFrame();

         JPanel panel = new JPanel();
         JButton b = new JButton( "Test me!" );
         b.addActionListener( new ActionListener() {
             public void actionPerformed( ActionEvent e ) {
                 System.out.println( "Action: "+ e );
             }
         } );
         b.getInputMap().put( KeyStroke.getKeyStroke( "ENTER" ), 
"Enter!!!");
         Action printAction = new AbstractAction() {

             public void actionPerformed( ActionEvent e )
             {
                 System.out.println( "Print Action:" );
                 System.out.println( e );
             }
         };
         b.getActionMap().put( "Enter!!!", printAction );
         panel.add( b );
         frame.add( panel );

         frame.pack();
         frame.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE );
         frame.setLocationRelativeTo( null );
         frame.setVisible( true );
     }

}

Back to comp.lang.java.programmer | Previous | NextPrevious in thread | Next in thread | Find similar


Thread

event listener (how to) wee <rbulseco@gmail.com> - 2011-08-08 19:16 -0700
  Re: event listener (how to) markspace <-@.> - 2011-08-08 20:06 -0700
  Re: event listener (how to) Knute Johnson <september@knutejohnson.com> - 2011-08-08 21:27 -0700

csiph-web