Comment faire un TimeSpinner en JavaFX?
Je voudrais faire un spinner pour entrer dans le temps comme cela : Youtube Vidéo
Si quelqu'un sait où le code source est caché, ça serait parfait.
Mais si non, je voudrais essayer de mettre en œuvre moi-même, mais comment dois-je encore faire 3 différents (focusable ?) textarea comme ça ?
Edit : Voici ce que j'ai, mais je voudrais pouvoir sélectionner les heures et la majoration des heures, non seulement les minutes (et même pour les secondes ofc)
Spinner<LocalTime> spinner = new Spinner(new SpinnerValueFactory() {
{
setConverter(new LocalTimeStringConverter(FormatStyle.MEDIUM));
}
@Override
public void decrement(int steps) {
if (getValue() == null)
setValue(LocalTime.now());
else {
LocalTime time = (LocalTime) getValue();
setValue(time.minusMinutes(steps));
}
}
@Override
public void increment(int steps) {
if (this.getValue() == null)
setValue(LocalTime.now());
else {
LocalTime time = (LocalTime) getValue();
setValue(time.plusMinutes(steps));
}
}
});
spinner.setEditable(true);
C'est le résultat que j'obtiens :
Grâce
Essayez de la mettre en œuvre et de et de poster une question spécifique si vous êtes coincé. En fait, votre question est hors sujet pour ce forum.
Eh bien, je ne sais même pas par où commencer en fait...
Probablement commencer avec un
Merci pour l'aide. J'ai édité mon post avec ce que je viens de le faire. Mais je veux toujours savoir comment sélectionner les 3 données distinctes 🙂
Vous pourriez faire quelque chose comme
Eh bien, je ne sais même pas par où commencer en fait...
Probablement commencer avec un
Spinner<LocalTime>
avec une coutume SpinnerValueFactory
.Merci pour l'aide. J'ai édité mon post avec ce que je viens de le faire. Mais je veux toujours savoir comment sélectionner les 3 données distinctes 🙂
Vous pourriez faire quelque chose comme
spinner.getEditor().getCaretPosition()
et de comparer les positions des délimiteurs (j'.e :
) de comprendre que l'unité d'incrémentation/décrémentation.OriginalL'auteur Phoste | 2015-09-16
Vous devez vous connecter pour publier un commentaire.
Je pense que la meilleure approche pour la sélection de l'individu les pièces de l'éditeur est de vérifier la
caretPosition
dans l'éditeur et de l'incrémenter/décrémenter la partie appropriée en tant que de besoin. Vous pouvez également définir uneTextFormatter
sur l'éditeur de contrôler les permis d'entrée, etc.Voici une rapide tentative: pas destiné à être la qualité de la production, mais devrait être un bon début:
Et voici un petit exemple d'utilisation:
J'ai juste copié à partir de mon exemple. Qu'avez-vous fait pour obtenir le NPE? Ce que la ligne était-il?
à la méthode increment dans chaque enum Mode. Il semble que le spinner valeur était nulle, j'ai juste ajouté un setValue(temps) dans le constructeur et il fonctionne très bien 😉
Merci: mise à jour du code en conséquence; je n'ai pas vu le NPE, mais il doit être initialisé avec la valeur de toute façon.
OriginalL'auteur James_D
changer votre convertisseur constructeur:
OriginalL'auteur kamel2005