Salutations!
En avancant dans l'apprentissage du java je suis arriver dans les event handling et j'ai découvert une chimère du java c'est-à-dire déclarer une classe dans l'appel d'une procédure. En voici un exemple :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
class ButtonPanel extends JPanel
{
    public ButtonPanel()
    {
        this.makeButton("Yellow", Color.YELLOW);
        this.makeButton("Blue", Color.BLUE);
        this.makeButton("Red", Color.RED);
    }
    
    private void makeButton(String label, final Color backgroundColor)
    {
        JButton button = new JButton(label);
        super.add(button);
        button.addActionListener(new
                ActionListener()
                {
                    public void actionPerformed(ActionEvent event)
                    {
                        ButtonPanel.this.setBackground(backgroundColor);
                    }
                }
            );
    }
}
Donc je me demandais s'il ne serait pas mieux de déclarer cette inner class dans la classe ButtonPanel que plutot dans les parametres de l'appel de la procedure button.addActionListener?

Si il y a un gain/perte de performance? Ou c'est tout simplement une possibiiltee qu'offre le java?