Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > comp.lang.java.programmer > #6895
| 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> |
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 | Next — Previous in thread | Next in thread | Find similar
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