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
|
//Valeur du ComboBox par défaut
output = comboBox.getSelectionModel().getSelectedItem().toString();
//Valeur par défaut pour les secondes, minutes, etc...
valeur = 1;
//Ici lorsque je clique sur mon ComboBox, je récupère la valeur du ComboBox
tabledateF.getItems().get(0).getTemps().valueProperty().addListener((observable, oldValue, newValue) -> {
task.cancel();
output = newValue;
System.out.println(output);
});
//Selon le type du ComboBox choisi j'éxecute mes codes ci-dessous
switch(output) {
//Ici tout fonctionne, mais si je choisis ensuite des minutes, je reste bloqué dans case "Secondes"
case "Secondes" :
System.out.println(output);
timer = new Timer();
//Execute la première tâche par défaut, soit toutes les secondes
task = new TimerTask() {
public void run() {
envoyerFichier(file, envoie);
}
};
timer.scheduleAtFixedRate(task, 0, (1000 * valeur));
//Lorsqu'on change de valeur dans le TextField on vérifie si la valeur est numérique
//Et on annule la tâche par défaut, pour lancer une nouvelle tâche avec la valeur modifiée
tabledateF.getItems().get(0).getTexttemps().textProperty().addListener((observable, oldValue, newValue) -> {
if(isNumeric(tabledateF.getItems().get(0).getTexttemps().getText())) {
valeur = Integer.parseInt(tabledateF.getItems().get(0).getTexttemps().getText());
System.out.println(valeur);
task.cancel();
task = new TimerTask() {
public void run() {
envoyerFichier(file, envoie);
}
};
timer.scheduleAtFixedRate(task, 0, (1000 * valeur));
}
else
System.out.println("Champ vide");
});
break;
case "Minutes" :
System.out.println(output + "lol");
timer = new Timer();
task = new TimerTask() {
public void run() {
envoyerFichier(file, envoie);
}
};
timer.scheduleAtFixedRate(task, 0, (1000 * 60 * valeur));
tabledateF.getItems().get(0).getTexttemps().textProperty().addListener((observable, oldValue, newValue) -> {
if(isNumeric(tabledateF.getItems().get(0).getTexttemps().getText())) {
valeur = Integer.parseInt(tabledateF.getItems().get(0).getTexttemps().getText());
System.out.println(valeur);
task.cancel();
task = new TimerTask() {
public void run() {
envoyerFichier(file, envoie);
}
};
timer.scheduleAtFixedRate(task, 0, (1000 * 60 *valeur));
}
else
System.out.println("Champ vide");
});
break;
} |
Partager