Utiliser correctement les listeners swing

Description

Beaucoup de codes ou de questions posées sur le forum présentent des listeners swing mal utilisés. Ce tutoriel a pour but de vous apprendre à utiliser efficacement les listenrers.

Source / Exemple :


import java.awt.Color;
import java.awt.Dimension;
import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JOptionPane;
import javax.swing.JPanel;


public class Fenetre extends JFrame {
    
    private static final long serialVersionUID = -2780252426871759949L;
    
    private JButton boutonExemple;
    private JPanel panelGris;
    private JPanel panelBleu;
    
    public Fenetre() {
        setDefaultCloseOperation(EXIT_ON_CLOSE);
        setLayout(new FlowLayout());
        
        /*
         * Création du bouton
         */
        boutonExemple = new JButton("Afficher");
        
        /*
         * Ajout du listener en implémentant la méthode actionPerformed dans une sous classe
         */
        boutonExemple.addActionListener(new ActionListener() {
            
            @Override
            public void actionPerformed(ActionEvent e) {
                JOptionPane.showMessageDialog(null, "message");
                
            }
        });
        
        panelBleu = new JPanel();
        panelBleu.setPreferredSize(new Dimension(50, 50));
        panelBleu.setBackground(Color.BLUE);
        
        /*
         * Ajout du listener
         */
        panelBleu.addMouseListener(new ListenerChangementCouleur(panelBleu, Color.BLUE, Color.CYAN));
        
        panelGris = new JPanel();
        panelGris.setPreferredSize(new Dimension(50, 50));
        panelGris.setBackground(Color.DARK_GRAY);
        
        /*
         * Ajout du listener
         */
        panelGris.addMouseListener(new ListenerChangementCouleur(panelGris, Color.DARK_GRAY, Color.LIGHT_GRAY));
        
        add(boutonExemple);
        add(panelBleu);
        add(panelGris);
        setSize(300, 100);
        setLocationRelativeTo(null);
        setVisible(true);
        
    }
    
    public static void main(String[] args) {
        new Fenetre();
    }

}

Codes Sources

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.