Mes boutons ne reagissent pas aux clics, probleme avec ma methode Listener
Bonjour à tous,
Je suis entrain de réaliser une fenetre divisé en 6 carrés(panels) avec 6 boutons chacun, j'aimerais que chaque fois que je clique sur un bouton
la couleur de fond du panel change.
Ma fenêtre s'affiche correctement mais lorsque je clique sur un bouton il y a rien qui se passe, j'ai l'impression c'est ma méthode ActionListener qui ne marche pas correctement, j'ai consulté plusieurs fac et site mais en vain, par consequant je sollicite votre aide, voici mon code:
Code:
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 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123
|
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package test;
//import java.awt.Color;
import java.awt.*;
//import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.Arrays;
import javax.swing.JButton;
import javax.swing.JFrame;
import static javax.swing.JFrame.EXIT_ON_CLOSE;
import javax.swing.JPanel;
import javax.swing.border.LineBorder;
import sun.org.mozilla.javascript.internal.ContextFactory.Listener;
public class maFenetre {
public static void main(String[] args) {
JFrame fen = new JFrame();
fen.setTitle("Ma fenetre");
fen.setSize(600, 600);
fen.setVisible(true);
fen.setDefaultCloseOperation(EXIT_ON_CLOSE);
JPanel mainPanel = new JPanel();
fen.setContentPane(mainPanel);
fen.setLayout(new GridLayout(2, 3));
mainPanel.setBorder(new LineBorder(Color.RED));
mainPanel.setLayout(new GridLayout(2, 3));
mainPanel.setBackground(new Color(0,0,0,0));
JPanel pan1 = new JPanel();
pan1.setBackground(Color.yellow);
pan1.setBorder(new LineBorder(Color.red));
JButton vert = new JButton("Vert");
vert.addActionListener(new MyAction());
pan1.add(vert);
mainPanel.add(pan1);
JPanel pan2 = new JPanel();
pan2.setBackground(Color.yellow);
pan2.setBorder(new LineBorder(Color.red));
JButton bleu = new JButton("Bleu");
bleu.addActionListener(new MyAction());
pan2.add(bleu);
mainPanel.add(pan2);
JPanel pan3 = new JPanel();
pan3.setBackground(Color.yellow);
pan3.setBorder(new LineBorder(Color.red));
JButton cyan = new JButton("Cyan");
cyan.addActionListener(new MyAction());
pan3.add(cyan);
mainPanel.add(pan3);
JPanel pan4 = new JPanel();
pan4.setBackground(Color.yellow);
pan4.setBorder(new LineBorder(Color.red));
JButton pink = new JButton("Pink");
pink.addActionListener(new MyAction());
pan4.add(pink);
mainPanel.add(pan4);
JPanel pan5 = new JPanel();
pan5.setBackground(Color.yellow);
pan5.setBorder(new LineBorder(Color.red));
JButton magenta = new JButton("Magenta");
magenta.addActionListener(new MyAction());
pan5.add(magenta);
mainPanel.add(pan5);
JPanel pan6 = new JPanel();
pan6.setBackground(Color.yellow);
pan6.setBorder(new LineBorder(Color.red));
JButton white = new JButton("White");
white.addActionListener(new MyAction());
pan6.add(white);
mainPanel.add(pan6);
}
public static class MyAction implements ActionListener {
public void actionPerformed(ActionEvent e) {
if (e.getSource() == vert) {
pan1.setBackground(Color.green);
}
if (e.getSource() == bleu) {
pan2.setBackground(Color.blue);
}
if (e.getSource() == cyan) {
pan3.setBackground(Color.cyan);
}
if (e.getSource() == pink) {
pan4.setBackground(Color.pink);
}
if (e.getSource() == magenta) {
pan5.setBackground(Color.magenta);
}
if (e.getSource() == white) {
pan6.setBackground(Color.white);
}
}
private JButton vert, bleu, cyan, pink, white, magenta;
private JPanel pan1, pan2, pan3, pan4, pan5, pan6;
}
} |