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";
	}
}