Derniers messages sur Zeste de Savoirhttps://zestedesavoir.com/forums/2016-12-17T11:12:29+01:00Les derniers messages parus sur le forum de Zeste de Savoir.Problème avec setItems() dans un TableView , message #1354162016-12-17T11:12:29+01:00Nemo/@Nemohttps://zestedesavoir.com/forums/sujet/7576/probleme-avec-setitems-dans-un-tableview/?page=1#p135416<p>Bon, j’ai résolu mon bug…</p>
<p>Premièrement, j’ai sorti l’appel de ma fonction initFull du constructeur pour en déléguer l’appel à mon MainApp à la suite de l’appel de:</p>
<div><table class="codehilitetable"><tr><td class="linenos"><div class="linenodiv"><pre>1
2
3</pre></div></td><td class="code"><div class="codehilite"><pre><span></span><span class="n">Scene</span> <span class="n">scene</span> <span class="o">=</span> <span class="k">new</span> <span class="n">Scene</span><span class="o">(</span><span class="n">principalLayout</span><span class="o">);</span>
<span class="n">primaryStage</span><span class="o">.</span><span class="na">setScene</span><span class="o">(</span><span class="n">scene</span><span class="o">);</span>
<span class="n">primaryStage</span><span class="o">.</span><span class="na">show</span><span class="o">();</span>
</pre></div>
</td></tr></table></div>
<p>Ensuite, j’ai remis en fonction les lignes de codes suivantes que j’avais mises en commentaires ne sachant pas trop à quoi m’en tenir:</p>
<div><table class="codehilitetable"><tr><td class="linenos"><div class="linenodiv"><pre>1
2
3</pre></div></td><td class="code"><div class="codehilite"><pre><span></span> <span class="n">idColumn</span><span class="o">.</span><span class="na">setCellValueFactory</span><span class="o">(</span><span class="n">cellData</span> <span class="o">-></span> <span class="n">cellData</span><span class="o">.</span><span class="na">getValue</span><span class="o">().</span><span class="na">idAlimentProperty</span><span class="o">());</span>
<span class="n">foodDescColumn</span><span class="o">.</span><span class="na">setCellValueFactory</span><span class="o">(</span><span class="n">cellData</span> <span class="o">-></span> <span class="n">cellData</span><span class="o">.</span><span class="na">getValue</span><span class="o">().</span><span class="na">foodDescriptionProperty</span><span class="o">());</span>
<span class="n">sciNameColumn</span><span class="o">.</span><span class="na">setCellValueFactory</span><span class="o">(</span><span class="n">cellData</span> <span class="o">-></span> <span class="n">cellData</span><span class="o">.</span><span class="na">getValue</span><span class="o">().</span><span class="na">sciNameProperty</span><span class="o">());</span>
</pre></div>
</td></tr></table></div>
<p>C’est fou, j’ai l’impression de tout comprendre tout d’un coup alors que ce n’est pas le cas!!! <img alt=":soleil:" src="/static/smileys/soleil.png"></p>
<p>Edit: J’ai également trouvé comment positionner le path du fichier de ma bdd dans mes resources en utilisant le .</p>
<div><table class="codehilitetable"><tr><td class="linenos"><div class="linenodiv"><pre>1</pre></div></td><td class="code"><div class="codehilite"><pre><span></span><span class="n">String</span> <span class="n">DB_URL</span> <span class="o">=</span> <span class="s">"jdbc:h2:./resources/db/FCEN2015"</span><span class="o">;</span>
</pre></div>
</td></tr></table></div>Problème avec setItems() dans un TableView , message #1354102016-12-17T10:18:45+01:00Nemo/@Nemohttps://zestedesavoir.com/forums/sujet/7576/probleme-avec-setitems-dans-un-tableview/?page=1#p135410<p>Et voici mon fichier fxml et mon model pour consultation rapide:</p>
<p>PrincipalLayout.fxml</p>
<div><table class="codehilitetable"><tr><td class="linenos"><div class="linenodiv"><pre> 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</pre></div></td><td class="code"><div class="codehilite"><pre><span></span><span class="cp"><?xml version="1.0" encoding="UTF-8"?></span>
<span class="cp"><?import javafx.scene.control.Button?></span>
<span class="cp"><?import javafx.scene.control.Label?></span>
<span class="cp"><?import javafx.scene.control.Tab?></span>
<span class="cp"><?import javafx.scene.control.TabPane?></span>
<span class="cp"><?import javafx.scene.control.TableColumn?></span>
<span class="cp"><?import javafx.scene.control.TableView?></span>
<span class="cp"><?import javafx.scene.control.TextField?></span>
<span class="cp"><?import javafx.scene.layout.AnchorPane?></span>
<span class="cp"><?import javafx.scene.layout.StackPane?></span>
<span class="cp"><?import javafx.scene.text.Font?></span>
<span class="nt"><AnchorPane</span> <span class="na">xmlns=</span><span class="s">"http://javafx.com/javafx/8.0.60"</span> <span class="na">xmlns:fx=</span><span class="s">"http://javafx.com/fxml/1"</span> <span class="na">fx:controller=</span><span class="s">"ca.nutritix.nutrion.view.PrincipalLayoutController"</span><span class="nt">></span>
<span class="nt"><children></span>
<span class="nt"><TabPane</span> <span class="na">layoutY=</span><span class="s">"50.0"</span> <span class="na">prefHeight=</span><span class="s">"650.0"</span> <span class="na">prefWidth=</span><span class="s">"900.0"</span> <span class="na">side=</span><span class="s">"LEFT"</span> <span class="na">tabClosingPolicy=</span><span class="s">"UNAVAILABLE"</span> <span class="na">AnchorPane.bottomAnchor=</span><span class="s">"0.0"</span> <span class="na">AnchorPane.leftAnchor=</span><span class="s">"0.0"</span> <span class="na">AnchorPane.rightAnchor=</span><span class="s">"0.0"</span><span class="nt">></span>
<span class="nt"><tabs></span>
<span class="nt"><Tab</span> <span class="na">text=</span><span class="s">"Par aliment"</span><span class="nt">></span>
<span class="nt"><content></span>
<span class="nt"><StackPane</span> <span class="na">prefHeight=</span><span class="s">"150.0"</span> <span class="na">prefWidth=</span><span class="s">"200.0"</span><span class="nt">></span>
<span class="nt"><children></span>
<span class="nt"><AnchorPane</span> <span class="na">prefHeight=</span><span class="s">"200.0"</span> <span class="na">prefWidth=</span><span class="s">"200.0"</span> <span class="nt">/></span>
<span class="nt"><AnchorPane</span> <span class="na">prefHeight=</span><span class="s">"200.0"</span> <span class="na">prefWidth=</span><span class="s">"200.0"</span><span class="nt">></span>
<span class="nt"><children></span>
<span class="nt"><Label</span> <span class="na">layoutX=</span><span class="s">"14.0"</span> <span class="na">layoutY=</span><span class="s">"14.0"</span> <span class="na">text=</span><span class="s">"Rechercher un aliment : "</span> <span class="na">AnchorPane.leftAnchor=</span><span class="s">"14.0"</span> <span class="na">AnchorPane.topAnchor=</span><span class="s">"14.0"</span><span class="nt">></span>
<span class="nt"><font></span>
<span class="nt"><Font</span> <span class="na">name=</span><span class="s">"Arial"</span> <span class="na">size=</span><span class="s">"18.0"</span> <span class="nt">/></span>
<span class="nt"></font></span>
<span class="nt"></Label></span>
<span class="nt"><TextField</span> <span class="na">layoutX=</span><span class="s">"211.0"</span> <span class="na">layoutY=</span><span class="s">"12.0"</span> <span class="na">prefHeight=</span><span class="s">"26.0"</span> <span class="na">prefWidth=</span><span class="s">"382.0"</span> <span class="na">AnchorPane.leftAnchor=</span><span class="s">"211.0"</span> <span class="na">AnchorPane.topAnchor=</span><span class="s">"12.0"</span><span class="nt">></span>
<span class="nt"><font></span>
<span class="nt"><Font</span> <span class="na">name=</span><span class="s">"Arial"</span> <span class="na">size=</span><span class="s">"14.0"</span> <span class="nt">/></span>
<span class="nt"></font></span>
<span class="nt"></TextField></span>
<span class="nt"><TableView</span> <span class="na">fx:id=</span><span class="s">"alimentTable"</span> <span class="na">layoutX=</span><span class="s">"14.0"</span> <span class="na">layoutY=</span><span class="s">"61.0"</span> <span class="na">prefHeight=</span><span class="s">"575.0"</span> <span class="na">prefWidth=</span><span class="s">"843.0"</span> <span class="na">AnchorPane.bottomAnchor=</span><span class="s">"39.0"</span> <span class="na">AnchorPane.leftAnchor=</span><span class="s">"14.0"</span> <span class="na">AnchorPane.rightAnchor=</span><span class="s">"14.0"</span> <span class="na">AnchorPane.topAnchor=</span><span class="s">"55.0"</span><span class="nt">></span>
<span class="nt"><columns></span>
<span class="nt"><TableColumn</span> <span class="na">fx:id=</span><span class="s">"idColumn"</span> <span class="na">minWidth=</span><span class="s">"25.0"</span> <span class="na">prefWidth=</span><span class="s">"100.0"</span> <span class="na">text=</span><span class="s">"ID"</span> <span class="nt">/></span>
<span class="nt"><TableColumn</span> <span class="na">fx:id=</span><span class="s">"foodDescColumn"</span> <span class="na">minWidth=</span><span class="s">"100.0"</span> <span class="na">prefWidth=</span><span class="s">"450.0"</span> <span class="na">text=</span><span class="s">"Description de l'aliment"</span> <span class="nt">/></span>
<span class="nt"><TableColumn</span> <span class="na">fx:id=</span><span class="s">"sciNameColumn"</span> <span class="na">minWidth=</span><span class="s">"100.0"</span> <span class="na">prefWidth=</span><span class="s">"300.0"</span> <span class="na">text=</span><span class="s">"Nom scientifique"</span> <span class="nt">/></span>
<span class="nt"></columns></span>
<span class="nt"></TableView></span>
<span class="nt"><Button</span> <span class="na">layoutX=</span><span class="s">"601.0"</span> <span class="na">layoutY=</span><span class="s">"8.0"</span> <span class="na">mnemonicParsing=</span><span class="s">"false"</span> <span class="na">text=</span><span class="s">"Go!"</span><span class="nt">></span>
<span class="nt"><font></span>
<span class="nt"><Font</span> <span class="na">name=</span><span class="s">"Arial"</span> <span class="na">size=</span><span class="s">"18.0"</span> <span class="nt">/></span>
<span class="nt"></font></span>
<span class="nt"></Button></span>
<span class="nt"><Label</span> <span class="na">layoutX=</span><span class="s">"14.0"</span> <span class="na">layoutY=</span><span class="s">"619.0"</span> <span class="na">prefHeight=</span><span class="s">"17.0"</span> <span class="na">prefWidth=</span><span class="s">"624.0"</span> <span class="na">text=</span><span class="s">"Double-cliquez sur la ligne d'un des aliments de la liste pour afficher ses propriétés nutritionnelles"</span> <span class="na">textFill=</span><span class="s">"RED"</span> <span class="na">AnchorPane.bottomAnchor=</span><span class="s">"14.0"</span> <span class="na">AnchorPane.leftAnchor=</span><span class="s">"14.0"</span><span class="nt">></span>
<span class="nt"><font></span>
<span class="nt"><Font</span> <span class="na">name=</span><span class="s">"Arial"</span> <span class="na">size=</span><span class="s">"14.0"</span> <span class="nt">/></span>
<span class="nt"></font></span>
<span class="nt"></Label></span>
<span class="nt"></children></span>
<span class="nt"></AnchorPane></span>
<span class="nt"></children></span>
<span class="nt"></StackPane></span>
<span class="nt"></content></span>
<span class="nt"></Tab></span>
<span class="nt"><Tab</span> <span class="na">text=</span><span class="s">"Par nutriment"</span> <span class="nt">/></span>
<span class="nt"></tabs></span>
<span class="nt"></TabPane></span>
<span class="nt"></children></span>
<span class="nt"></AnchorPane></span>
`
</pre></div>
</td></tr></table></div>
<p>et Aliment.java</p>
<div><table class="codehilitetable"><tr><td class="linenos"><div class="linenodiv"><pre> 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</pre></div></td><td class="code"><div class="codehilite"><pre><span></span><span class="kn">package</span> <span class="nn">ca.nutritix.nutrion.model</span><span class="o">;</span>
<span class="kn">import</span> <span class="nn">javafx.beans.property.IntegerProperty</span><span class="o">;</span>
<span class="kn">import</span> <span class="nn">javafx.beans.property.SimpleIntegerProperty</span><span class="o">;</span>
<span class="kn">import</span> <span class="nn">javafx.beans.property.SimpleStringProperty</span><span class="o">;</span>
<span class="kn">import</span> <span class="nn">javafx.beans.property.StringProperty</span><span class="o">;</span>
<span class="kd">public</span> <span class="kd">class</span> <span class="nc">Aliment</span> <span class="o">{</span>
<span class="kd">private</span> <span class="kd">final</span> <span class="n">StringProperty</span> <span class="n">idAliment</span><span class="o">;</span>
<span class="kd">private</span> <span class="kd">final</span> <span class="n">StringProperty</span> <span class="n">foodDescription</span><span class="o">;</span>
<span class="kd">private</span> <span class="kd">final</span> <span class="n">StringProperty</span> <span class="n">sciName</span><span class="o">;</span>
<span class="kd">public</span> <span class="nf">Aliment</span><span class="o">()</span> <span class="o">{</span>
<span class="k">this</span><span class="o">(</span><span class="kc">null</span><span class="o">,</span> <span class="kc">null</span><span class="o">,</span> <span class="kc">null</span><span class="o">);</span>
<span class="o">}</span>
<span class="kd">public</span> <span class="nf">Aliment</span><span class="o">(</span><span class="n">String</span> <span class="n">idAliment</span><span class="o">,</span> <span class="n">String</span> <span class="n">foodDescription</span><span class="o">,</span> <span class="n">String</span> <span class="n">sciName</span><span class="o">)</span> <span class="o">{</span>
<span class="k">this</span><span class="o">.</span><span class="na">idAliment</span> <span class="o">=</span> <span class="k">new</span> <span class="n">SimpleStringProperty</span><span class="o">(</span><span class="n">idAliment</span><span class="o">);</span>
<span class="k">this</span><span class="o">.</span><span class="na">foodDescription</span> <span class="o">=</span> <span class="k">new</span> <span class="n">SimpleStringProperty</span><span class="o">(</span><span class="n">foodDescription</span><span class="o">);</span>
<span class="k">this</span><span class="o">.</span><span class="na">sciName</span> <span class="o">=</span> <span class="k">new</span> <span class="n">SimpleStringProperty</span><span class="o">(</span><span class="n">sciName</span><span class="o">);</span>
<span class="o">}</span>
<span class="kd">public</span> <span class="n">String</span> <span class="nf">getIdAliment</span><span class="o">()</span> <span class="o">{</span>
<span class="k">return</span> <span class="k">this</span><span class="o">.</span><span class="na">idAliment</span><span class="o">.</span><span class="na">get</span><span class="o">();</span>
<span class="o">}</span>
<span class="kd">public</span> <span class="kt">void</span> <span class="nf">setIdAliment</span><span class="o">(</span><span class="n">String</span> <span class="n">idAliment</span><span class="o">)</span> <span class="o">{</span>
<span class="k">this</span><span class="o">.</span><span class="na">idAliment</span><span class="o">.</span><span class="na">set</span><span class="o">(</span><span class="n">idAliment</span><span class="o">);</span>
<span class="o">}</span>
<span class="kd">public</span> <span class="n">StringProperty</span> <span class="nf">idAlimentProperty</span><span class="o">()</span> <span class="o">{</span>
<span class="k">return</span> <span class="n">idAliment</span><span class="o">;</span>
<span class="o">}</span>
<span class="kd">public</span> <span class="n">String</span> <span class="nf">getFoodDescription</span><span class="o">()</span> <span class="o">{</span>
<span class="k">return</span> <span class="k">this</span><span class="o">.</span><span class="na">foodDescription</span><span class="o">.</span><span class="na">get</span><span class="o">();</span>
<span class="o">}</span>
<span class="kd">public</span> <span class="kt">void</span> <span class="nf">setFoodDescription</span><span class="o">(</span><span class="n">String</span> <span class="n">foodDescription</span><span class="o">)</span> <span class="o">{</span>
<span class="k">this</span><span class="o">.</span><span class="na">foodDescription</span><span class="o">.</span><span class="na">set</span><span class="o">(</span><span class="n">foodDescription</span><span class="o">);</span>
<span class="o">}</span>
<span class="kd">public</span> <span class="n">StringProperty</span> <span class="nf">foodDescriptionProperty</span><span class="o">()</span> <span class="o">{</span>
<span class="k">return</span> <span class="n">foodDescription</span><span class="o">;</span>
<span class="o">}</span>
<span class="kd">public</span> <span class="n">String</span> <span class="nf">getSciName</span><span class="o">()</span> <span class="o">{</span>
<span class="k">return</span> <span class="k">this</span><span class="o">.</span><span class="na">sciName</span><span class="o">.</span><span class="na">get</span><span class="o">();</span>
<span class="o">}</span>
<span class="kd">public</span> <span class="kt">void</span> <span class="nf">setSciName</span><span class="o">(</span><span class="n">String</span> <span class="n">sciName</span><span class="o">)</span> <span class="o">{</span>
<span class="k">this</span><span class="o">.</span><span class="na">sciName</span><span class="o">.</span><span class="na">set</span><span class="o">(</span><span class="n">sciName</span><span class="o">);</span>
<span class="o">}</span>
<span class="kd">public</span> <span class="n">StringProperty</span> <span class="nf">sciNameProperty</span><span class="o">()</span> <span class="o">{</span>
<span class="k">return</span> <span class="n">sciName</span><span class="o">;</span>
<span class="o">}</span>
<span class="o">}</span>
<span class="err">`</span>
</pre></div>
</td></tr></table></div>Problème avec setItems() dans un TableView , message #1354072016-12-17T09:35:26+01:00Nemo/@Nemohttps://zestedesavoir.com/forums/sujet/7576/probleme-avec-setitems-dans-un-tableview/?page=1#p135407<p>Alors voilà, je suis bloqué sur ce message d’erreur que je n’arrive pas du tout à solutionner:</p>
<div><table class="codehilitetable"><tr><td class="linenos"><div class="linenodiv"><pre> 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20</pre></div></td><td class="code"><div class="codehilite"><pre><span></span><span class="n">java</span><span class="o">.</span><span class="na">lang</span><span class="o">.</span><span class="na">NullPointerException</span>
<span class="n">at</span> <span class="n">ca</span><span class="o">.</span><span class="na">nutritix</span><span class="o">.</span><span class="na">nutrion</span><span class="o">.</span><span class="na">view</span><span class="o">.</span><span class="na">PrincipalLayoutController</span><span class="o">.</span><span class="na">initFull</span><span class="o">(</span><span class="n">PrincipalLayoutController</span><span class="o">.</span><span class="na">java</span><span class="o">:</span><span class="mi">89</span><span class="o">)</span>
<span class="n">at</span> <span class="n">ca</span><span class="o">.</span><span class="na">nutritix</span><span class="o">.</span><span class="na">nutrion</span><span class="o">.</span><span class="na">view</span><span class="o">.</span><span class="na">PrincipalLayoutController</span><span class="o">.<</span><span class="n">init</span><span class="o">>(</span><span class="n">PrincipalLayoutController</span><span class="o">.</span><span class="na">java</span><span class="o">:</span><span class="mi">46</span><span class="o">)</span>
<span class="n">at</span> <span class="n">sun</span><span class="o">.</span><span class="na">reflect</span><span class="o">.</span><span class="na">NativeConstructorAccessorImpl</span><span class="o">.</span><span class="na">newInstance0</span><span class="o">(</span><span class="n">Native</span> <span class="n">Method</span><span class="o">)</span>
<span class="n">at</span> <span class="n">sun</span><span class="o">.</span><span class="na">reflect</span><span class="o">.</span><span class="na">NativeConstructorAccessorImpl</span><span class="o">.</span><span class="na">newInstance</span><span class="o">(</span><span class="n">NativeConstructorAccessorImpl</span><span class="o">.</span><span class="na">java</span><span class="o">:</span><span class="mi">62</span><span class="o">)</span>
<span class="n">at</span> <span class="n">sun</span><span class="o">.</span><span class="na">reflect</span><span class="o">.</span><span class="na">DelegatingConstructorAccessorImpl</span><span class="o">.</span><span class="na">newInstance</span><span class="o">(</span><span class="n">DelegatingConstructorAccessorImpl</span><span class="o">.</span><span class="na">java</span><span class="o">:</span><span class="mi">45</span><span class="o">)</span>
<span class="n">at</span> <span class="n">java</span><span class="o">.</span><span class="na">lang</span><span class="o">.</span><span class="na">reflect</span><span class="o">.</span><span class="na">Constructor</span><span class="o">.</span><span class="na">newInstance</span><span class="o">(</span><span class="n">Constructor</span><span class="o">.</span><span class="na">java</span><span class="o">:</span><span class="mi">423</span><span class="o">)</span>
<span class="n">at</span> <span class="n">java</span><span class="o">.</span><span class="na">lang</span><span class="o">.</span><span class="na">Class</span><span class="o">.</span><span class="na">newInstance</span><span class="o">(</span><span class="n">Class</span><span class="o">.</span><span class="na">java</span><span class="o">:</span><span class="mi">442</span><span class="o">)</span>
<span class="n">at</span> <span class="n">sun</span><span class="o">.</span><span class="na">reflect</span><span class="o">.</span><span class="na">misc</span><span class="o">.</span><span class="na">ReflectUtil</span><span class="o">.</span><span class="na">newInstance</span><span class="o">(</span><span class="n">ReflectUtil</span><span class="o">.</span><span class="na">java</span><span class="o">:</span><span class="mi">51</span><span class="o">)</span>
<span class="n">at</span> <span class="n">javafx</span><span class="o">.</span><span class="na">fxml</span><span class="o">.</span><span class="na">FXMLLoader$ValueElement</span><span class="o">.</span><span class="na">processAttribute</span><span class="o">(</span><span class="n">FXMLLoader</span><span class="o">.</span><span class="na">java</span><span class="o">:</span><span class="mi">927</span><span class="o">)</span>
<span class="n">at</span> <span class="n">javafx</span><span class="o">.</span><span class="na">fxml</span><span class="o">.</span><span class="na">FXMLLoader$InstanceDeclarationElement</span><span class="o">.</span><span class="na">processAttribute</span><span class="o">(</span><span class="n">FXMLLoader</span><span class="o">.</span><span class="na">java</span><span class="o">:</span><span class="mi">971</span><span class="o">)</span>
<span class="n">at</span> <span class="n">javafx</span><span class="o">.</span><span class="na">fxml</span><span class="o">.</span><span class="na">FXMLLoader$Element</span><span class="o">.</span><span class="na">processStartElement</span><span class="o">(</span><span class="n">FXMLLoader</span><span class="o">.</span><span class="na">java</span><span class="o">:</span><span class="mi">220</span><span class="o">)</span>
<span class="n">at</span> <span class="n">javafx</span><span class="o">.</span><span class="na">fxml</span><span class="o">.</span><span class="na">FXMLLoader$ValueElement</span><span class="o">.</span><span class="na">processStartElement</span><span class="o">(</span><span class="n">FXMLLoader</span><span class="o">.</span><span class="na">java</span><span class="o">:</span><span class="mi">744</span><span class="o">)</span>
<span class="n">at</span> <span class="n">javafx</span><span class="o">.</span><span class="na">fxml</span><span class="o">.</span><span class="na">FXMLLoader</span><span class="o">.</span><span class="na">processStartElement</span><span class="o">(</span><span class="n">FXMLLoader</span><span class="o">.</span><span class="na">java</span><span class="o">:</span><span class="mi">2707</span><span class="o">)</span>
<span class="n">at</span> <span class="n">javafx</span><span class="o">.</span><span class="na">fxml</span><span class="o">.</span><span class="na">FXMLLoader</span><span class="o">.</span><span class="na">loadImpl</span><span class="o">(</span><span class="n">FXMLLoader</span><span class="o">.</span><span class="na">java</span><span class="o">:</span><span class="mi">2527</span><span class="o">)</span>
<span class="n">at</span> <span class="n">javafx</span><span class="o">.</span><span class="na">fxml</span><span class="o">.</span><span class="na">FXMLLoader</span><span class="o">.</span><span class="na">loadImpl</span><span class="o">(</span><span class="n">FXMLLoader</span><span class="o">.</span><span class="na">java</span><span class="o">:</span><span class="mi">2441</span><span class="o">)</span>
<span class="n">at</span> <span class="n">javafx</span><span class="o">.</span><span class="na">fxml</span><span class="o">.</span><span class="na">FXMLLoader</span><span class="o">.</span><span class="na">load</span><span class="o">(</span><span class="n">FXMLLoader</span><span class="o">.</span><span class="na">java</span><span class="o">:</span><span class="mi">2409</span><span class="o">)</span>
<span class="n">at</span> <span class="n">ca</span><span class="o">.</span><span class="na">nutritix</span><span class="o">.</span><span class="na">nutrion</span><span class="o">.</span><span class="na">MainApp</span><span class="o">.</span><span class="na">initPrincipalLayout</span><span class="o">(</span><span class="n">MainApp</span><span class="o">.</span><span class="na">java</span><span class="o">:</span><span class="mi">30</span><span class="o">)</span>
<span class="n">at</span> <span class="n">ca</span><span class="o">.</span><span class="na">nutritix</span><span class="o">.</span><span class="na">nutrion</span><span class="o">.</span><span class="na">MainApp</span><span class="o">.</span><span class="na">start</span><span class="o">(</span><span class="n">MainApp</span><span class="o">.</span><span class="na">java</span><span class="o">:</span><span class="mi">23</span><span class="o">)</span>
<span class="o">...</span>
</pre></div>
</td></tr></table></div>
<p>J’ai écris mon code en m’inspirant de plusieurs exemples sur le web, je ne saisie pas bien toutes les nuances de chacunes des étapes. L’erreur se produit à la ligne 89. Je soupçonne que ça se produise parce que je ne fait pas de setCellValueFactory sur mes gugus de colonne…</p>
<p>Je sais que j’en demande beaucoup mais si quelqu’un pouvait m’aider…
Au besoin, je partagerai mon projet complet via mon GDrive…
Edit: Il m’est venu à l’esprit qu’il ne serait peut-être pas judicieux de vous partager directement le dossier sur lequel je fais des modifications pour essayer de solutionner moi-même mon problème en attendant, alors je vous ai fait une archive de mon projet en l’état où je pose cette question que vous pouvez récupérer avec ce lien:<a href="https://drive.google.com/file/d/0B1aXxbE8EEBteGtEMVA5UjExSmM/view?usp=sharing">20161217-03-59Nutrion.rar</a></p>
<p>Aussi, comment puis-je faire pour que le nom et le chemin de fichier de ma BDD fasse plus propre et pointe directement dans l’arborescence du projet sans que je parte de mon ~/?</p>
<div><table class="codehilitetable"><tr><td class="linenos"><div class="linenodiv"><pre> 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</pre></div></td><td class="code"><div class="codehilite"><pre><span></span><span class="kn">package</span> <span class="nn">ca.nutritix.nutrion.view</span><span class="o">;</span>
<span class="kn">import</span> <span class="nn">javafx.collections.FXCollections</span><span class="o">;</span>
<span class="kn">import</span> <span class="nn">javafx.collections.ObservableList</span><span class="o">;</span>
<span class="kn">import</span> <span class="nn">javafx.fxml.FXML</span><span class="o">;</span>
<span class="kn">import</span> <span class="nn">javafx.scene.control.TableColumn</span><span class="o">;</span>
<span class="kn">import</span> <span class="nn">javafx.scene.control.TableView</span><span class="o">;</span>
<span class="kn">import</span> <span class="nn">javafx.scene.control.TextField</span><span class="o">;</span>
<span class="kn">import</span> <span class="nn">javafx.scene.control.cell.PropertyValueFactory</span><span class="o">;</span>
<span class="kn">import</span> <span class="nn">javafx.scene.control.Button</span><span class="o">;</span>
<span class="kn">import</span> <span class="nn">java.sql.*</span><span class="o">;</span>
<span class="kn">import</span> <span class="nn">ca.nutritix.nutrion.MainApp</span><span class="o">;</span>
<span class="kn">import</span> <span class="nn">ca.nutritix.nutrion.model.Aliment</span><span class="o">;</span>
<span class="kd">public</span> <span class="kd">class</span> <span class="nc">PrincipalLayoutController</span> <span class="o">{</span>
<span class="kd">static</span> <span class="kd">final</span> <span class="n">String</span> <span class="n">JDBC_DRIVER</span> <span class="o">=</span> <span class="s">"org.h2.Driver"</span><span class="o">;</span>
<span class="kd">static</span> <span class="kd">final</span> <span class="n">String</span> <span class="n">DB_URL</span> <span class="o">=</span> <span class="s">"jdbc:h2:~/Google Drive/Java/Neon/Nutrion/resources/db/FCEN2015"</span><span class="o">;</span>
<span class="kd">static</span> <span class="kd">final</span> <span class="n">String</span> <span class="n">USER</span> <span class="o">=</span> <span class="s">"nutrion"</span><span class="o">;</span>
<span class="kd">static</span> <span class="kd">final</span> <span class="n">String</span> <span class="n">PASS</span> <span class="o">=</span> <span class="s">""</span><span class="o">;</span>
<span class="nd">@FXML</span>
<span class="kd">private</span> <span class="n">TextField</span> <span class="n">txtRecherche</span><span class="o">;</span>
<span class="nd">@FXML</span>
<span class="kd">private</span> <span class="n">Button</span> <span class="n">btnRecherche</span><span class="o">;</span>
<span class="nd">@FXML</span>
<span class="kd">private</span> <span class="n">TableView</span><span class="o"><</span><span class="n">Aliment</span><span class="o">></span> <span class="n">alimentTable</span><span class="o">;</span>
<span class="nd">@FXML</span>
<span class="kd">private</span> <span class="n">TableColumn</span><span class="o"><</span><span class="n">Aliment</span><span class="o">,</span> <span class="n">String</span><span class="o">></span> <span class="n">idColumn</span><span class="o">;</span> <span class="c1">//Ici le String ne serait-il pas plutot Integer???</span>
<span class="nd">@FXML</span>
<span class="kd">private</span> <span class="n">TableColumn</span><span class="o"><</span><span class="n">Aliment</span><span class="o">,</span> <span class="n">String</span><span class="o">></span> <span class="n">foodDescColumn</span><span class="o">;</span>
<span class="nd">@FXML</span>
<span class="kd">private</span> <span class="n">TableColumn</span><span class="o"><</span><span class="n">Aliment</span><span class="o">,</span> <span class="n">String</span><span class="o">></span> <span class="n">sciNameColumn</span><span class="o">;</span>
<span class="kd">private</span> <span class="n">ObservableList</span><span class="o"><</span><span class="n">Aliment</span><span class="o">></span> <span class="n">rechercheData</span> <span class="o">=</span> <span class="n">FXCollections</span><span class="o">.</span><span class="na">observableArrayList</span><span class="o">();</span>
<span class="kd">private</span> <span class="n">ObservableList</span> <span class="n">uneListe</span><span class="o">;</span>
<span class="kd">private</span> <span class="n">MainApp</span> <span class="n">mainApp</span><span class="o">;</span>
<span class="kd">public</span> <span class="nf">PrincipalLayoutController</span><span class="o">()</span> <span class="o">{</span>
<span class="k">this</span><span class="o">.</span><span class="na">initFull</span><span class="o">();</span>
<span class="o">}</span>
<span class="nd">@FXML</span>
<span class="kd">private</span> <span class="kt">void</span> <span class="nf">doRecherche</span><span class="o">()</span> <span class="o">{</span>
<span class="o">}</span>
<span class="kd">private</span> <span class="kt">void</span> <span class="nf">initFull</span><span class="o">()</span> <span class="o">{</span>
<span class="cm">/* idColumn.setCellValueFactory(cellData -> cellData.getValue().idAlimentProperty());</span>
<span class="cm"> foodDescColumn.setCellValueFactory(cellData -> cellData.getValue().foodDescriptionProperty());</span>
<span class="cm"> sciNameColumn.setCellValueFactory(cellData -> cellData.getValue().sciNameProperty());</span>
<span class="cm">*/</span>
<span class="n">Connection</span> <span class="n">conn</span> <span class="o">=</span> <span class="kc">null</span><span class="o">;</span>
<span class="n">Statement</span> <span class="n">stmt</span> <span class="o">=</span> <span class="kc">null</span><span class="o">;</span>
<span class="n">String</span> <span class="n">sql</span> <span class="o">=</span> <span class="kc">null</span><span class="o">;</span>
<span class="k">try</span><span class="o">{</span>
<span class="c1">//Register JDBC driver</span>
<span class="n">Class</span><span class="o">.</span><span class="na">forName</span><span class="o">(</span><span class="n">JDBC_DRIVER</span><span class="o">);</span>
<span class="c1">//Open a connection</span>
<span class="n">System</span><span class="o">.</span><span class="na">out</span><span class="o">.</span><span class="na">println</span><span class="o">(</span><span class="s">"*** Connecting to database..."</span><span class="o">);</span>
<span class="n">conn</span> <span class="o">=</span> <span class="n">DriverManager</span><span class="o">.</span><span class="na">getConnection</span><span class="o">(</span><span class="n">DB_URL</span><span class="o">,</span><span class="n">USER</span><span class="o">,</span><span class="n">PASS</span><span class="o">);</span>
<span class="n">System</span><span class="o">.</span><span class="na">out</span><span class="o">.</span><span class="na">println</span><span class="o">(</span><span class="n">conn</span><span class="o">.</span><span class="na">getMetaData</span><span class="o">());</span>
<span class="n">stmt</span> <span class="o">=</span> <span class="n">conn</span><span class="o">.</span><span class="na">createStatement</span><span class="o">();</span>
<span class="n">sql</span> <span class="o">=</span> <span class="s">"SELECT FOODID, FOODDESCRIPTIONF, SCIENTIFICNAME FROM FOOD_NAME"</span><span class="o">;</span>
<span class="n">ResultSet</span> <span class="n">rs</span> <span class="o">=</span> <span class="n">stmt</span><span class="o">.</span><span class="na">executeQuery</span><span class="o">(</span><span class="n">sql</span><span class="o">);</span>
<span class="k">while</span><span class="o">(</span><span class="n">rs</span><span class="o">.</span><span class="na">next</span><span class="o">())</span> <span class="o">{</span>
<span class="n">Aliment</span> <span class="n">unAliment</span> <span class="o">=</span> <span class="kc">null</span><span class="o">;</span>
<span class="k">for</span> <span class="o">(</span><span class="kt">int</span> <span class="n">i</span> <span class="o">=</span> <span class="mi">1</span><span class="o">;</span> <span class="n">i</span> <span class="o"><=</span> <span class="n">rs</span><span class="o">.</span><span class="na">getMetaData</span><span class="o">().</span><span class="na">getColumnCount</span><span class="o">();</span> <span class="n">i</span><span class="o">++)</span> <span class="o">{</span>
<span class="n">unAliment</span> <span class="o">=</span> <span class="k">new</span> <span class="n">Aliment</span><span class="o">(</span><span class="n">rs</span><span class="o">.</span><span class="na">getString</span><span class="o">(</span><span class="mi">1</span><span class="o">),</span> <span class="n">rs</span><span class="o">.</span><span class="na">getString</span><span class="o">(</span><span class="mi">2</span><span class="o">),</span> <span class="n">rs</span><span class="o">.</span><span class="na">getString</span><span class="o">(</span><span class="mi">3</span><span class="o">));</span>
<span class="n">System</span><span class="o">.</span><span class="na">out</span><span class="o">.</span><span class="na">println</span><span class="o">(</span><span class="n">unAliment</span><span class="o">.</span><span class="na">getIdAliment</span><span class="o">()</span> <span class="o">+</span> <span class="s">" | "</span> <span class="o">+</span> <span class="n">unAliment</span><span class="o">.</span><span class="na">getFoodDescription</span><span class="o">()</span> <span class="o">+</span> <span class="s">" | "</span>
<span class="o">+</span> <span class="n">unAliment</span><span class="o">.</span><span class="na">getSciName</span><span class="o">());</span>
<span class="o">}</span>
<span class="n">rechercheData</span><span class="o">.</span><span class="na">add</span><span class="o">(</span><span class="n">unAliment</span><span class="o">);</span>
<span class="o">}</span>
<span class="n">alimentTable</span><span class="o">.</span><span class="na">setItems</span><span class="o">(</span><span class="n">rechercheData</span><span class="o">);</span>
<span class="o">}</span><span class="k">catch</span><span class="o">(</span><span class="n">SQLException</span> <span class="n">se</span><span class="o">){</span>
<span class="c1">//Handle errors for JDBC</span>
<span class="n">se</span><span class="o">.</span><span class="na">printStackTrace</span><span class="o">();</span>
<span class="o">}</span><span class="k">catch</span><span class="o">(</span><span class="n">Exception</span> <span class="n">e</span><span class="o">){</span>
<span class="c1">//Handle errors for Class.forName</span>
<span class="n">e</span><span class="o">.</span><span class="na">printStackTrace</span><span class="o">();</span>
<span class="o">}</span><span class="k">finally</span><span class="o">{</span>
<span class="k">try</span><span class="o">{</span>
<span class="k">if</span><span class="o">(</span><span class="n">conn</span><span class="o">!=</span><span class="kc">null</span><span class="o">)</span> <span class="o">{</span>
<span class="n">conn</span><span class="o">.</span><span class="na">close</span><span class="o">();</span>
<span class="n">System</span><span class="o">.</span><span class="na">out</span><span class="o">.</span><span class="na">println</span><span class="o">(</span><span class="s">"*** Déconnexion."</span><span class="o">);</span>
<span class="o">}</span>
<span class="o">}</span><span class="k">catch</span><span class="o">(</span><span class="n">SQLException</span> <span class="n">se</span><span class="o">){</span>
<span class="n">se</span><span class="o">.</span><span class="na">printStackTrace</span><span class="o">();</span>
<span class="o">}</span><span class="c1">//end finally try</span>
<span class="o">}</span>
<span class="o">}</span>
<span class="kd">public</span> <span class="kt">void</span> <span class="nf">setMainApp</span><span class="o">(</span><span class="n">MainApp</span> <span class="n">mainApp</span><span class="o">)</span> <span class="o">{</span>
<span class="k">this</span><span class="o">.</span><span class="na">mainApp</span> <span class="o">=</span> <span class="n">mainApp</span><span class="o">;</span>
<span class="c1">// Add observable list data to the table</span>
<span class="c1">//personTable.setItems(mainApp.getPersonData());</span>
<span class="o">}</span>
<span class="o">}</span>
<span class="err">`</span>
</pre></div>
</td></tr></table></div>