Bonjour, alors voilà, je bloque depuis un moment sur mon code. J'ai vraiment besoin d'aide
Voici une classe de test que j'ai fais pour illustrer mon problème :
En gros ce qu'il se passe c'est juste que lorsque je clique sur le bouton "+" un Label supplémentaire s'ajoute avec un compteur. Donc je vais avoir "1" puis "2" si j'appui sur le bouton, puis "3" si j'appuis encore, etc ...
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
30
31
32
33
34
35
36
37
38
39
40
41
42
43 import javafx.application.Application; import javafx.scene.Scene; import javafx.scene.control.Button; import javafx.scene.control.Label; import javafx.scene.layout.FlowPane; import javafx.stage.Stage; public class test extends Application { private Scene scene; private ArrayList<Label> listeLabel; private FlowPane layout; private Button btnPlus; private int compteur; public void start(Stage fenetre){ compteur = 1; listeLabel = new ArrayList<>(); listeLabel.add(new Label("______ 1 ______ ")); btnPlus = new Button("+"); layout = new FlowPane(btnPlus,listeLabel.get(0)); scene = new Scene(layout,400,200); fenetre.setScene(scene); fenetre.show(); btnPlus.setOnAction(e ->{ compteur++; Label lbl = new Label("______"+compteur+"______ "); listeLabel.add(lbl); layout.getChildren().add(listeLabel.get(compteur-1)); }); for (int i=0; i<listeLabel.size(); i++){ Label lblTemporaire = listeLabel.get(i); listeLabel.get(i).setOnMouseClicked( e ->{ System.out.println(lblTemporaire.toString()); }); } } }
Ensuite, le but c'est de récupérer les informations de ce qui est présent dans ma listeLabel et donc le problème se situe dans ma lambda expression avec le setOnMouseClicked. ce que je veux c'est simplement afficher en console le label sur lequel je clique. Théoriquement, à chaque fois que je crées un label, il s'ajoute dans l'ArrayList listeLabel. Sauf que la lambda expression de s'active que pour le premier Label.
Je ne suis qu'un étudiant et je début en Java, du coup désolé d'avance si ça parait un peu bête mais bon ... j'ai rien trouvé pour m'aider.
Partager