Derniers messages sur Zeste de Savoirhttps://zestedesavoir.com/forums/2018-03-19T09:19:25+01:00Les derniers messages parus sur le forum de Zeste de Savoir.[Résolu]NullPointerException ImageIcon, message #1758882018-03-19T09:19:25+01:00panistefanin/@panistefaninhttps://zestedesavoir.com/forums/sujet/10338/resolunullpointerexception-imageicon/?page=1#p175888<p>Excellente poste. Merci beaucoup !!</p>
<p><a href="https://192168ll.org/">192.168.l.l</a></p>[Résolu]NullPointerException ImageIcon, message #1744772018-02-26T00:25:18+01:00Perso007/@Perso007https://zestedesavoir.com/forums/sujet/10338/resolunullpointerexception-imageicon/?page=1#p174477<p>Oui il m’affiche bien null <code>java
image?false</code></p>
<p>D’accord tu as raison j’y avais pas fait attention même si l’erreur ne vient pas là c’est tordu oui
(même si au début je me suis posé 2sec la question vu que j’avais jamais écris comme sa)</p>
<p>J’ai résolu mon problème il y’a peu (je n’ai plus l’exception mais j’arrive toujours pas à afficher l’icône mais c’est un autre problème!) </p>
<p>Merci quand même! <img alt=":)" src="/static/smileys/smile.png"></p>[Résolu]NullPointerException ImageIcon, message #1744762018-02-26T00:03:46+01:00ache/@achehttps://zestedesavoir.com/forums/sujet/10338/resolunullpointerexception-imageicon/?page=1#p174476<p>Humm … Je ne fais pas beaucoup de Java.</p>
<p>Mais du coup, <code>is</code> est null ? <code>image</code> t’affiche : <code>null image?false</code> ?</p>
<p>Dans tous les cas, la construction <code>is.equals(null))</code> me semble vraiment tordu. Je veux dire, si <code>is</code> est <code>null</code> alors tu ne peux pas avoir la méthode <code>equals</code> donc tu auras une exception (NullPointerException).</p>
<p>Fais plutôt <code>id == null</code>.</p>[Résolu]NullPointerException ImageIcon, message #1744692018-02-25T20:19:24+01:00Perso007/@Perso007https://zestedesavoir.com/forums/sujet/10338/resolunullpointerexception-imageicon/?page=1#p174469<p>Bonsoir !</p>
<p>Premier message sur le forum <img alt="^^" src="/static/smileys/hihi.png">
J’ai un problème:
je veut récup une ImageIcon stockée dans ma base pour l’afficher dans ma JTable, voici le code</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</pre></div></td><td class="code"><div class="codehilite"><pre><span></span><span class="n">Icon</span> <span class="n">imageIcon</span><span class="o">=</span><span class="kc">null</span><span class="o">;</span>
<span class="n">BufferedImage</span> <span class="n">image</span> <span class="o">=</span> <span class="kc">null</span><span class="o">;</span>
<span class="n">Blob</span> <span class="n">blob</span> <span class="o">=</span> <span class="kc">null</span><span class="o">;</span>
<span class="n">JTable</span> <span class="n">myTable</span><span class="o">;</span>
<span class="n">InputStream</span> <span class="n">is</span><span class="o">;</span>
<span class="k">while</span> <span class="o">(</span><span class="n">resultat</span><span class="o">.</span><span class="na">next</span><span class="o">())</span> <span class="o">{</span>
<span class="kt">int</span> <span class="n">code</span> <span class="o">=</span> <span class="n">resultat</span><span class="o">.</span><span class="na">getInt</span><span class="o">(</span><span class="mi">1</span><span class="o">);</span>
<span class="n">String</span> <span class="n">libelle</span> <span class="o">=</span> <span class="n">resultat</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="kt">int</span> <span class="n">prix</span> <span class="o">=</span> <span class="n">resultat</span><span class="o">.</span><span class="na">getInt</span><span class="o">(</span><span class="mi">3</span><span class="o">);</span>
<span class="n">blob</span> <span class="o">=</span> <span class="n">resultat</span><span class="o">.</span><span class="na">getBlob</span><span class="o">(</span><span class="mi">4</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">"null is?"</span><span class="o">+</span> <span class="n">blob</span><span class="o">.</span><span class="na">equals</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="n">is</span> <span class="o">=</span> <span class="n">blob</span><span class="o">.</span><span class="na">getBinaryStream</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">"null is?"</span><span class="o">+</span> <span class="n">is</span><span class="o">.</span><span class="na">equals</span><span class="o">(</span><span class="kc">null</span><span class="o">));</span>
<span class="n">image</span> <span class="o">=</span> <span class="o">(</span><span class="n">BufferedImage</span><span class="o">)</span><span class="n">ImageIO</span><span class="o">.</span><span class="na">read</span><span class="o">(</span><span class="n">is</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">"null image?"</span><span class="o">+</span> <span class="n">is</span><span class="o">.</span><span class="na">equals</span><span class="o">(</span><span class="kc">null</span><span class="o">));</span>
<span class="n">imageIcon</span> <span class="o">=</span> <span class="k">new</span> <span class="n">ImageIcon</span><span class="o">(</span><span class="n">image</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">"null imageicon?"</span><span class="o">+</span> <span class="n">imageIcon</span><span class="o">.</span><span class="na">equals</span><span class="o">(</span><span class="kc">null</span><span class="o">));</span>
<span class="c1">//imageIcon.setImage(image);</span>
<span class="o">}</span> <span class="k">catch</span> <span class="o">(</span><span class="n">IOException</span> <span class="n">ioe</span><span class="o">)</span> <span class="o">{</span>
<span class="n">ioe</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">NullPointerException</span> <span class="n">npe</span><span class="o">)</span> <span class="o">{</span>
<span class="n">npe</span><span class="o">.</span><span class="na">printStackTrace</span><span class="o">();</span>
<span class="o">}</span>
<span class="o">}</span>
<span class="o">}</span>
<span class="o">.....</span>
</pre></div>
</td></tr></table></div>
<p>l’erreur me dit comme quoi mon imageIcon est nulle (ligne 19 précisément) :</p>
<div><table class="codehilitetable"><tr><td class="linenos"><div class="linenodiv"><pre>1
2
3
4
5</pre></div></td><td class="code"><div class="codehilite"><pre><span></span>ava.lang.NullPointerException
at java.desktop/javax.swing.ImageIcon.<init><span class="o">(</span>ImageIcon.java:240<span class="o">)</span>
at fr.iut.ConnexionBd.getProduits<span class="o">(</span>ConnexionBd.java:273<span class="o">)</span>
at fr.iut.Produit.ViewAccueilProduit.<init><span class="o">(</span>ViewAccueilProduit.java:84<span class="o">)</span>
at fr.iut.App.main<span class="o">(</span>App.java:26<span class="o">)</span>
</pre></div>
</td></tr></table></div>
<p>Merci !</p>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>