Bonjour
J'ai un petit soucis avec onAction des boutons, je vous explique
J'ai la vue suivante
Sample.fxml
dans cette vue il faut que je crée des Pane selon le nombre de Matériel que j'ai, c'est à dire si j'ai 3 matériels je doit ajouter à ma vue (entre FlowPane) 3 pane, chaque pane contient un label et un bouton
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 <?xml version="1.0" encoding="UTF-8"?> <?import java.net.*?> <?import javafx.geometry.*?> <?import javafx.scene.control.*?> <?import javafx.scene.layout.*?> <?import javafx.scene.text.*?> <AnchorPane fx:id="AnchorPane" prefHeight="650" prefWidth="650" xmlns:fx="http://javafx.com/fxml" fx:controller="javafxapplication1.SampleController"> <stylesheets> <URL value="@toto.css" /> </stylesheets> <children> <FlowPane fx:id="flowpan" prefHeight="200.0" prefWidth="300"> </FlowPane> </children> </AnchorPane>
voilà mon controlleur
SampleController.java
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
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 import java.net.URL; import java.util.ArrayList; import java.util.List; import java.util.ResourceBundle; import javafx.beans.property.ListProperty; import javafx.collections.FXCollections; import javafx.collections.ObservableList; import javafx.event.ActionEvent; import javafx.event.EventHandler; import javafx.fxml.FXML; import javafx.fxml.Initializable; import javafx.geometry.Insets; import javafx.geometry.Pos; import javafx.scene.control.Button; import javafx.scene.control.ButtonBuilder; import javafx.scene.control.ComboBox; import javafx.scene.control.Label; import javafx.scene.control.LabelBuilder; import javafx.scene.layout.AnchorPane; import javafx.scene.layout.AnchorPaneBuilder; import javafx.scene.layout.FlowPane; import javafx.scene.layout.HBox; import javafx.scene.layout.HBoxBuilder; import javafx.scene.layout.Pane; import javafx.scene.layout.PaneBuilder; import javafx.scene.text.Font; /** * * @author admin */ public class SampleController implements Initializable { @FXML private HBox hboxButton; @FXML private FlowPane flowpan; @FXML private Button changeButton; @FXML private Label materielLabel; @Override public void initialize(URL url, ResourceBundle rb) { // TODO ArrayList<Materiel> l1=new ArrayList<>(); Materiel m1=new Materiel("Materiel 1"); Materiel m2=new Materiel("Materiel 2"); Materiel m3=new Materiel("Materiel 3"); l1.add(m1); l1.add(m2); l1.add(m3); //construire les different Pane createMaterielPan(l1); } public void createMaterielPan(ArrayList<Materiel> l1) { //creation des pane selon le nombre de materiels for(int j=0; j<l1.size(); j++) { //creer label materielLabel=LabelBuilder.create().text(l1.get(j).getNomMateriel()) .layoutX(42.0) .layoutY(23.0) .prefWidth(147.0) .font(new Font("System Bold", 18.0)) .build(); //creation du bouton "changer" changeButton= ButtonBuilder.create() .styleClass("MenuButton") .text("Changer") .onAction(new EventHandler<ActionEvent>() { //Action on button @Override public void handle(ActionEvent t) { hboxButton.getChildren().remove(changeButton);//supprimer bouton au clique } }) .build(); //hbox du bouton "changer" hboxButton=HBoxBuilder.create() .padding(new Insets(10.0, 10.0, 10.0, 10.0)) .alignment(Pos.BOTTOM_RIGHT) .layoutY(118.0) .spacing(8.0) .prefWidth(228.0) .children(changeButton)//add button to the hboxButton .prefHeight(58.0).build(); //creation du pan Pane p=PaneBuilder.create().children ( AnchorPaneBuilder.create() .prefHeight(200.0) .prefWidth(228.0) .layoutX(89.0) .styleClass("MainPane") .children(materielLabel,hboxButton)//add label and hboxbutton .build() ).build(); flowpan.getChildren().add(p);//add pan to the flopan (fxml) }}}
donc mon problème est dans .onAction sur le bouton (fonction createMaterielPan du controlleur)quand je clique sur le bouton de mon premier pane
c'est le bouton du 3ième pane qui est supprimé
je voudrais savoir comment faire la différence entre quel bouton de quel pan à été cliqué
voilà..j'espère que c'est un peux claire
Merci
Partager