Bonjour;
Je suis entrain de réaliser un petit programme, une interface avec plusieurs boutons qui sont générer avec random, l'interface affiche bien les boutons qui sont générer avec random dependant de la taille d'un tableau associé, mais j'aimerais que chaque fois que je clique sur un bouton, le bouton change de couleur, j'ai essayé de faire pas mal des recherches j'ai vue qu'on peut utiliser la class Graphics2D, mais j'ai du mal à savoir cmt l'integrer dans mon code.
Une deuxième question, j'ai un autre probleme avec ma boucle que je constate que parfois le clic me donne des chiffres n'importe comment lorsque je clique sur un bouton, car chaque bouton est associé à une valeur d'une case d'un tableau que je recupere à chaque clique pour calculer la somme des valeurs recupere à la fin.
A la fin lorsque la somme est egale à ma valeur cible tout les boutons deviennent vert
Ici si je clique sur un bouton il devient bleu, j'aimerais que chaque fois que je clique sur un bouton il change de couleur.
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
26
27
28
29 public void actionPerformed(ActionEvent e) { // TODO Auto-generated method stub for (int i = 0; i < tableau.length; i++) { count++; if (bouton[i] == e.getSource()) { bouton[i].setBackground(Color.blue); v = tableau[i]; s += v; count = i; if (s == somme) { bouton[i].setBackground(Color.green); } continue; } } label.setText(" Current Sum: " + s);
Le code qui me permet d'ajouter les boutons de le panel en fonction de la taille de mon tableau est ci-dessous
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 public void panel(){ panel.setLayout(new GridLayout(1, tableau.length)); bouton = new JButton[tableau.length]; for (int i = 0; i < tableau.length; i++) { bouton [i] = new JButton("" + tableau[i]); bouton [i].setText(""+tableau[i]); bouton [i].setBackground(Color.white); bouton [i].addActionListener(this); panel.add(bouton[i]); } }
Partager