Bonjour,

Je suis en train de creer un logiciel et pratiquant javaFx que depuis quelques jours je suis confronté a un probleme.
J'ai donc creer un programme tres minimaliste qui isole mon probléme.
Fonctionnement du logiciel :

J'ai un ComboBox qui me permet de choisir un type d'huile (seule la 1ere huile est codée dans l exemple).
Quand j'ai choisi le type d'huile, une fenetre s'ouvre et me demande la quantité que je veux ajouter.

Mon probleme est le suivant :

Quand j ai saisi la quantité d'huile et que je clic sur le bouton "Ajouter l'huile" j'aimerai que la quantité que je viens de rentrer s'affiche dans la colonne "Pourcentage" de mon TableView.

Nom : 1.jpg
Affichages : 2110
Taille : 26,0 Ko

Nom : 2.jpg
Affichages : 2138
Taille : 51,5 Ko

Le projet contient 2 classe, "TestDriver" et la classe "Huile" qui contient entre autre une variable "quantiteEnGrammes".

Dans la classe TestDriver je commence par créer le ComboBox, ensuite je créer le TableView avec ses 2 colonnes, puis je gére les clics de souris sur les boutons.

Admettons que je choisisse "Huile de ricin", puis je clic sur le bouton "OK".
Une fenetre s ouvre et je rentre 50.
Cette valeur est affectée a la variable "quantiteEnGrammes" de mon objet Huile (h).

Maintenant dans la fonction qui gére le clic sur le bouton "Ajouter l'huile" j 'aimerais qu au clic le TableView se remplisse de la valeur 50. (celle que j ai précédemment rentrée).

J ai lu plusieurs tuto mais je n en trouve pas en francais sur le sujet.

Merci de votre aide.

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
 
public class Main extends Application
{
	public static void remplirTableView(BorderPane root)
	{
		VBox vBoxCaracteristiques = new VBox();
		Button boutonAjouter = new Button("Ajouter l'huile");
 
 
 
		/**************Création du ComboBox pour choisir les huiles******************/
 
		HBox hBoxHuiles = new HBox();
		Label labelType = new Label("Huiles :");
		Button boutonOk = new Button("OK");
 
		ComboBox<String> comboBoxHuiles = new ComboBox<>();
		comboBoxHuiles.getItems().setAll(
				"Huile de ricin",
				"Huile d'argan",
				"Huile d'avocat"
				);
		comboBoxHuiles.setPromptText("Choisissez vos huiles");
		hBoxHuiles.getChildren().addAll(labelType, comboBoxHuiles, boutonOk);
 
		/***********************************************************************/
 
 
 
		/**************Création du TableView avec ses colonnes******************/
 
		TableView<Huile> tableView = new TableView();
 
		TableColumn<Huile, String> huile = new TableColumn<>("Huile");
		TableColumn<Huile, Double> quantiteHuile = new TableColumn<>("Pourcentage");
 
		tableView.getColumns().setAll(huile, quantiteHuile);
		vBoxCaracteristiques.getChildren().addAll(hBoxHuiles, tableView, boutonAjouter);
 
		/***********************************************************************/
 
 
 
		/**************Gestion des clics sur les boutons******************/
 
		boutonOk.setOnMouseClicked(e1 ->
		{
			Optional<String> textIn = null;
 
			String nom = comboBoxHuiles.getValue();
 
			if (!comboBoxHuiles.getValue().equals("null"))
			{
				if (nom.equals("Huile de ricin"))
				{
					TextInputDialog dialog = new TextInputDialog(null);
					Huile h = new Huile();
					dialog.setHeaderText("Quelle proportion d'huile de ricin voulez vous mettre dans votre préparation. (%)");
 
			        Optional<String> result = dialog.showAndWait();
			        h.quantiteEnGrammes = Double.parseDouble(result.get());
 
			        boutonAjouter.setOnMouseClicked(e2 ->
					{
						// je voudrais qu ici la valeur saisie précédemment s ajoute dans le tableView dans la colonne "pourcentage"
						System.out.println("Clic sur le bouton ajouter l'huile");
					});
				}
		    }
 
 
		});
 
		/***********************************************************************/
 
		root.setLeft(vBoxCaracteristiques);
	}
 
 
 
 
	@Override
	public void start(Stage primaryStage) {
		BorderPane root = new BorderPane();
		Scene scene = new Scene(root, 400, 400);
		remplirTableView(root);
		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
11
 
public class Huile
{
	public double coefficientSaponification = 0;
	public double quantiteEnGrammes = 0;
 
	public Huile()
	{
 
	}
}[ATTACH]404933[/ATTACH][ATTACH]404936[/ATTACH]