Je rencontre un petit problème depuis maintenant 2 jours. Je n'arrive pas à update un StringProperties lorsque je change de value dans une ChoiceBox.
Voici le code pour update:
public void updateNote(String quarter)
{
String format = "";
for(int i = 0; i < notes.size(); i++)
{
if(notes.get(i).getQuarter().getName().equals(quarter))
{
format = format + notes.get(i).getValue() + " ; ";
this.notesProperty.set(format);
}
}
}
Cette fonction est appeler lors de l'event de la choiceBox :
choiceBox.getSelectionModel().selectedIndexProperty()
.addListener(new ChangeListener<Number>()
{
public void changed(@SuppressWarnings("rawtypes") ObservableValue ov, Number value, Number new_value)
{
if(quarterPerson == null) return;
switch (new_value.intValue()) {
case 0:
quarterPerson.updateNote(QuarterList.FIRST.getName());
break;
case 1:
quarterPerson.updateNote(QuarterList.SECOND.getName());
break;
case 2:
quarterPerson.updateNote(QuarterList.THIRD.getName());
break;
}
}
});
IMPORTANT:
Tout fonctionne, j'ai tout debug pendant 4h. Sa me retourne bien un String de type "14.0 ; 16.5 ; .. etc" en console.
C'est le this.notesProperty.set(monString); Qui fonctionne pas. Du moins il fonctionne bizarrement.
Quand je change de "Trimestre" dans la choiceBox sa update pas, mais quand j'ajoute un note (Une autre classe, c'est une fenêtre en plus), sa m'update bien le string, pourtant il n'y a rien qui l'update.
Je pense que c'est du à une action que je comprends pas: Ma choiceBox se réinitialise tout seul à la 1ère value à chaque fois que j'ajoute une note.
Si je me souviens de mes cours (ça fait quand même un an que je n'ai plus vraiment touché à Java, même si je le retouche actuellement, mais pas sur ça), si tu dois utiliser une chaîne de caractère qui doit se modifier, tu n'utilises pas String (qui est pour les chaînes statiques), mais StringBuffer.