Bonjour,
je creer un logiciel de gestion de cout de revient. Pour l exemple ici j ai choisi des aliments.
Donc j ai une classe abstraite Aliment qui contient 4 variables (nom, couleur, poids, prix).
Et j ai 3 classes qui heritent de Aliment qui sont Chocolat, Riz et Tomate.
J ai creer une interface graphique qui me permet de saisir autant d aliment que je veux. Des qu un aliment est creer il est stocké dans un ArrayList d'aliment.
Ensuite je creer une boucle foreach et pour chaque aliment de mon ArrayList j affiche 2 textField, un pour rentrer le prix et l autre la quantité.
Et ensuite un bouton Valider.
Je voudrais qu au clic sur le bouton valider les infos des textField sois attribué a chaque objet.
et je vois pas comment faire, je me perds dans mes raisonnements.
merci.
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 package application; import java.util.ArrayList; import javafx.application.Application; import javafx.stage.Stage; import javafx.scene.Scene; import javafx.scene.control.Button; import javafx.scene.control.Label; import javafx.scene.control.TextField; import javafx.scene.layout.BorderPane; import javafx.scene.layout.HBox; import javafx.scene.layout.VBox; import javafx.scene.text.Font; import javafx.scene.text.FontWeight; import javafx.scene.text.Text; public class Main extends Application { ArrayList<Aliment> listeAliments = new ArrayList<>(); Button boutonValider = new Button("Valider"); @Override public void start(Stage primaryStage) { BorderPane root = new BorderPane(); Scene scene = new Scene(root, 800, 600); VBox conteneurGenerale = new VBox(); // ici je creer les aliments a la main mais normalement c est fait via l interface graphique listeAliments.add(new Tomate()); listeAliments.add(new Riz()); listeAliments.add(new Chocolat()); listeAliments.add(new Chocolat()); for (Aliment index : listeAliments) { HBox aliment = new HBox(); Label labelPrix = new Label("Prix achat " + index.nom + " : "); TextField textFieldPrix = new TextField(); labelPrix.setTranslateY(5); labelPrix.setPrefWidth(110); labelPrix.setMinWidth(220); Label labelquantite = new Label("Quantite (gr) : "); TextField textFieldQuantite = new TextField(); labelquantite.setTranslateX(60); labelquantite.setTranslateY(5); labelquantite.setPrefWidth(110); labelquantite.setMinWidth(200); aliment.getChildren().addAll(labelPrix, textFieldPrix, labelquantite, textFieldQuantite); conteneurGenerale.getChildren().addAll(aliment); } conteneurGenerale.getChildren().add(boutonValider); boutonValider.setOnMouseClicked(e -> { for (Aliment aliment : listeAliments) { System.out.println("Aliment : " + aliment.nom + " Couleur : " + aliment.couleur + " Prix : " + aliment.prix + " Quantite : " + aliment.poids); } }); root.setCenter(conteneurGenerale); primaryStage.setScene(scene); primaryStage.show(); } public static void main(String[] args) { launch(args); } }
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 package application; public abstract class Aliment { public double poids = 0.0; public double prix = 0.0; public String nom = null; public String couleur = null; }
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 package application; public class Chocolat extends Aliment { public Chocolat() { super.nom = "Chocolat"; super.couleur = "Noire"; } }
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 package application; public class Riz extends Aliment { public Riz() { super.nom = "Riz"; super.couleur = "Blanc"; } }
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 package application; public class Tomate extends Aliment { public Tomate() { super.nom = "Tomate"; super.couleur = "Rouge"; } }
Partager