Ajouter un événement à un Bouton en Java Swing
Dans ce tutoriel nous allons découvrir comment ajouter un événement à un Bouton en Java Swing, ou bien comment savoir si Jbutton est cliqué.
JButton listener
En bref, vous souhaitez généralement ajouter un ActionListener à un JButton, comme indiqué dans l’extrait de code suivant:
JButton btn = new JButton("Bouton"); btn.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { //afficher le jdialog lorsque le bouton est cliqué JDialog dialog = new JDialog(frame, "Welcome to WayToLearnX", true); dialog.setLocationRelativeTo(frame); dialog.setVisible(true); } });
Placez le code dans la méthode actionPerformed de la classe ActionListener que vous souhaitez exécuter lorsque le bouton est cliqué. Il existe plusieurs façons d’Implémenter cela:
- Implémentez-le comme indiqué ci-dessus
- Demandez à votre classe d’implémenter un ActionListener
- Créez une autre classe en tant que ActionListener
Exemple Complet: En implémentant l’interface ActionListener
import java.awt.event.*; import javax.swing.*; import java.awt.*; class JDialogExemple extends JFrame implements ActionListener { static JFrame frame; public static void main(String[] args) { // créer un frame frame = new JFrame("Exemple JDialog"); // créer un objet JDialogExemple obj = new JDialogExemple(); // créer un panneau JPanel panel = new JPanel(); JButton btn = new JButton("Cliquez ici"); // ajouter un listener au bouton btn.addActionListener(obj); // ajouter le bouton au panneau panel.add(btn); frame.add(panel); frame.setSize(300, 300); frame.show(); } public void actionPerformed(ActionEvent e) { String s = e.getActionCommand(); if(s.equals("Cliquez ici")) { // Créer une boîte de dialogue JDialog d = new JDialog(frame, "Boite de dialogue"); // Créer une étiquette JLabel l = new JLabel("Ceci est une boite de dialogue."); // Ajouter l'étiquette à la boîte de dialogue d.add(l); // Définir la taille de la boîte de dialogue d.setSize(200, 100); // Définir la visibilité de la boîte de dialogue d.setVisible(true); } } }
Sortie: