1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65
| import java.awt.Button;
import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyEvent;
import javax.swing.JButton;
import javax.swing.JComponent;
import javax.swing.JFrame;
import javax.swing.JOptionPane;
import javax.swing.KeyStroke;
public class sample extends JFrame implements ActionListener{
private static final long serialVersionUID = 1L;
private JButton m_bDefaultButton = null;
public sample() {
super();
setSize(300, 150);
setLayout(new FlowLayout());
add(new Button("Bouton exemple"));
add(new Button("Annuler"));
//mise en place du bouton par défaut
m_bDefaultButton = new JButton ("Bouton par défaut");
add( m_bDefaultButton);
m_bDefaultButton.addActionListener( this);
this.getRootPane().setDefaultButton( m_bDefaultButton);
//fin mise en place du bouton par défaut
setLocationRelativeTo(null);
//mise en place du hook sur la touche escape, pour toute la feuille
ActionListener escListener = new ActionListener() {
public void actionPerformed(ActionEvent e) {
escapeKeyPressed();//cette méthode sera appelée lors de l'utilisation de la touche escape
}
};
getRootPane().registerKeyboardAction( escListener, KeyStroke.getKeyStroke(KeyEvent.VK_ESCAPE, 0), JComponent.WHEN_IN_FOCUSED_WINDOW);
// avec cette ligne, on ajoute la possibilité de trapper la touche entrée, équivalente au bouton par défaut
// bien sure il faudra pouvoir savoir quelle touche a été pressée
//getRootPane().registerKeyboardAction( escListener, KeyStroke.getKeyStroke(KeyEvent.VK_ENTER, 0), JComponent.WHEN_IN_FOCUSED_WINDOW);
//fin mise en place du hook sur la touche escape, pour toute la feuille
setVisible(true);
}
private void escapeKeyPressed() {
javax.swing.JOptionPane.showMessageDialog(null, "La touche Echappement à été appuyée !", "Sample", JOptionPane.WARNING_MESSAGE);
}
public void actionPerformed(ActionEvent e) {
if ( e.getSource().equals( m_bDefaultButton)) {
javax.swing.JOptionPane.showMessageDialog(null, "Le bouton par défaut vient d'être utilisé", "Sample", JOptionPane.WARNING_MESSAGE);
}
}
public static void main(String[] args) {
new sample();
}
} |
Partager