Changer la couleur BG de JButton En appuyant sur JAVA


Je suis très nouveau dans l'interface graphique et je me demande comment changer la couleur BG d'un JButton lorsque ce bouton respectif est enfoncé. Je ne sais pas comment structurer correctement l'interface graphique pour cette première fois.

public static void createWindow(int x)
    {
         JFrame frame = new JFrame("WINDOW");
         frame.setSize(40*x, 40*x);

         JPanel panel = new JPanel();
         panel.setLayout(new FlowLayout());

         for(int i = 0; i < x * x; i++)
         {
             JButton button = new JButton();
             button.setPreferredSize(new Dimension(40, 40));
             panel.add(button);
             button.addActionListener(new Action());
         }

         frame.add(panel);

         frame.setLocationRelativeTo(null);
         frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
         frame.setVisible(true);

    }

    static class Action implements ActionListener
    {
        public void actionPerformed(ActionEvent e)
        {
            //changes color of button
        }
    }
Author: Frakcool, 2015-10-15

1 answers

Votre ActionListener pourrait ressembler à:

    public void actionPerformed(ActionEvent e)
    {
        JButton button = (JButton)e.getSource();
        button.setBackground( Color.RED );
    }

Et vous n'en avez besoin que d'un ActionListener car le code est générique car le bouton cliqué proviendra de l'événement.

De plus, n'utilisez pas Action pour le nom de la classe. Il y a une interface par ce nom donc ça devient déroutant. Utilisez un nom plus descriptif.

 3
Author: camickr, 2015-10-14 22:07:07