IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaFX Discussion :

Coder un bouton Reset


Sujet :

JavaFX

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    mai 2023
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 19
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : mai 2023
    Messages : 6
    Points : 5
    Points
    5
    Par défaut Coder un bouton Reset
    Bonjour à tous,

    Je m apprête à commencer un projet de développement d IHM et après études de différents langages, Java Fx m a semblé le plus adapté à mes besoins. Toutefois, j aimerais savoir s il est possible de coder un bouton reset, je m explique en situation :
    Admettons que l utilisateur active un bouton qui déclanche un calcul, peut il activer un bouton reset qui stoppe le calcul, même si ce dernier était toujours en cours calcul ?
    J ai lu qu on pouvait manipuler la boucle événementiel avec des filtres et une méthodes consume() mais ne suis pas sûr qu on puisse arrêter un événement en cours de calcul.

    Merci d avance, j espère que le message est compréhensible !

    Cordialement,

  2. #2
    Membre éclairé

    Profil pro
    Inscrit en
    janvier 2009
    Messages
    355
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : janvier 2009
    Messages : 355
    Points : 731
    Points
    731
    Billets dans le blog
    5
    Par défaut
    Il faut avoir des notions de programmations concurrentes, et du frameworks executors:
    https://www.jmdoudoux.fr/java/dej/chap-executor.htm

    Dans le cadre de JavaFX, ce dernier a une surcouche d'exécutor (utilisable pour les progressbar par exemple):
    https://fabrice-bouye.developpez.com...thread-javafx/

    Il s'agit ici d'implémenter, dans ton cas, une tâche de fond.

    C'est d'ailleurs grâce à JavaFX que j'ai connu l'excellent Framework executor.

    Cordialement.

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    mai 2023
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 19
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : mai 2023
    Messages : 6
    Points : 5
    Points
    5
    Par défaut
    Merci beaucoup pour votre réponse rapide et détaillée, je peux maintenant étudier le problème sans perdre de temps !

    Cordialement,

  4. #4
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    mai 2023
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 19
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : mai 2023
    Messages : 6
    Points : 5
    Points
    5
    Par défaut Scene builder
    Ceci dit, je comptais utiliser Scene Builder pour implémenter l interface plus rapidement, les 2 sont compatibles ?

  5. #5
    Membre éclairé

    Profil pro
    Inscrit en
    janvier 2009
    Messages
    355
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : janvier 2009
    Messages : 355
    Points : 731
    Points
    731
    Billets dans le blog
    5
    Par défaut
    Là, ça fait un moment que je n'ai pas fait de JavaFX, donc ça va être dur pour moi de répondre.

    Mais de mémoire, le Scène Builder, c'est l'interface.

    Dans ce que je réponds, je parle d'une tâche de fond, sur un Thread séparé, que l'on cancel à l'aide d'un bouton.

    Je ne pense pas que ce soit la même chose.

    Cordialement.

  6. #6
    Rédacteur/Modérateur

    Avatar de bouye
    Homme Profil pro
    Information Technologies Specialist (Scientific Computing)
    Inscrit en
    août 2005
    Messages
    6 800
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Nouvelle-Calédonie

    Informations professionnelles :
    Activité : Information Technologies Specialist (Scientific Computing)
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : août 2005
    Messages : 6 800
    Points : 22 766
    Points
    22 766
    Billets dans le blog
    50
    Par défaut
    Aucun soucis ou incompatibilité, SceneBuilder est un outils qui permet de monter une UI sans devoir taper le FXML a mano. C'est l'action qui sera lancée en clic du bouton qui permettra de démarrer le Service/l'Executor. Donc, a priori, du code Java dans une méthode marquée @FXML qui sera placé dans la classe contrôleur ; sauf si on met du code en script directement dans le FXML, ce qui est possible mais que j'ai guère trop pratiqué au fil des ans (car peu utile au final). Et même dans ce cas exotique, rien empeche d'utiliser l'API pour les taches de fond.

    EDIT - pour élaborer plus en avant :
    • 1er clic sur le bouton (ou sur le bouton dédié au lancement) ->
      • Création du Service et de la Task associée
      • Ajout des 3 callback pour savoir quoi faire en fin de Service
        • Service::setOnSucceeded -> la Task finit normalement.
        • Service::setOnCancelled -> la Task a été annulée.
        • Service::setOnFailed -> la Task a échoué avec une exception.
      • Lancement de Service::start.
    • 2nd clic sur le bouton (ou sur le bouton dédié a l’arrêt) -> on invoque Service::cancel


    Ce qui implique que dans le code de la Task, il faut régulièrement vérifier la valeur de Task::isCancelled (paske sinon ta Task continue son calcul jusqu’à la fin).
    Merci de penser au tag quand une réponse a été apportée à votre question. Aucune réponse ne sera donnée à des messages privés portant sur des questions d'ordre technique. Les forums sont là pour que vous y postiez publiquement vos problèmes.

    suivez mon blog sur Développez.

    Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the universe trying to produce bigger and better idiots. So far, the universe is winning. ~ Rich Cook

  7. #7
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    mai 2023
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 19
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : mai 2023
    Messages : 6
    Points : 5
    Points
    5
    Par défaut
    Citation Envoyé par bouye Voir le message
    Aucun soucis ou incompatibilité, SceneBuilder est un outils qui permet de monter une UI sans devoir taper le FXML a mano. C'est l'action qui sera lancée en clic du bouton qui permettra de démarrer le Service/l'Executor. Donc, a priori, du code Java dans une méthode marquée @FXML qui sera placé dans la classe contrôleur ; sauf si on met du code en script directement dans le FXML, ce qui est possible mais que j'ai guère trop pratiqué au fil des ans (car peu utile au final). Et même dans ce cas exotique, rien empeche d'utiliser l'API pour les taches de fond.

    EDIT - pour élaborer plus en avant :
    • 1er clic sur le bouton (ou sur le bouton dédié au lancement) ->
      • Création du Service et de la Task associée
      • Ajout des 3 callback pour savoir quoi faire en fin de Service
        • Service::setOnSucceeded -> la Task finit normalement.
        • Service::setOnCancelled -> la Task a été annulée.
        • Service::setOnFailed -> la Task a échoué avec une exception.
      • Lancement de Service::start.
    • 2nd clic sur le bouton (ou sur le bouton dédié a l’arrêt) -> on invoque Service::cancel


    Ce qui implique que dans le code de la Task, il faut régulièrement vérifier la valeur de Task::isCancelled (paske sinon ta Task continue son calcul jusqu’à la fin).
    Okay je prend note, merci beaucoup à vous !

    Je n'ai pas encore beaucoup manipulé Java et Java FX mais maintenant je sais que c'est sûrement ce qui me permettra de mener mon projet à bien.

    J'ai besoin de faire une GUI en asynchrone mais avec un GUI builder car je n'ai pas beaucoup de temps et plusieurs logiciels à faire. Ainsi, j'hésite entre Python (glade/GTK) et ses coroutines ou Rust (à la main) ou VB.NET (Visual Studio), en asynchrone.

    Si vous avez un avis sur la question, je suis preneur, sinon je ferais moi même qq tests avant de me lancer.

    PS : Etant nouveau sur le forum, est ce préférable de répondre comme ça avec citation ou faire "répondre à la discussion" ?

  8. #8
    Rédacteur/Modérateur

    Avatar de bouye
    Homme Profil pro
    Information Technologies Specialist (Scientific Computing)
    Inscrit en
    août 2005
    Messages
    6 800
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Nouvelle-Calédonie

    Informations professionnelles :
    Activité : Information Technologies Specialist (Scientific Computing)
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : août 2005
    Messages : 6 800
    Points : 22 766
    Points
    22 766
    Billets dans le blog
    50
    Par défaut
    Citation Envoyé par Mulotwo Voir le message
    PS : Etant nouveau sur le forum, est ce préférable de répondre comme ça avec citation ou faire "répondre à la discussion" ?
    Aucune préférence, c'est du pareil au même.
    Merci de penser au tag quand une réponse a été apportée à votre question. Aucune réponse ne sera donnée à des messages privés portant sur des questions d'ordre technique. Les forums sont là pour que vous y postiez publiquement vos problèmes.

    suivez mon blog sur Développez.

    Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the universe trying to produce bigger and better idiots. So far, the universe is winning. ~ Rich Cook

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [PHP-JS] bouton reset ne supprimant pas des champs avec value
    Par SegmentationFault dans le forum Langage
    Réponses: 4
    Dernier message: 29/11/2006, 14h52
  2. bouton reset sur un formulaire
    Par zazie2003 dans le forum Struts 1
    Réponses: 1
    Dernier message: 01/08/2006, 16h00
  3. [HTML] Bouton Reset + Redirection
    Par weib dans le forum Balisage (X)HTML et validation W3C
    Réponses: 1
    Dernier message: 27/04/2006, 14h22
  4. [VB6]Coder un bouton pour jouer du son [debutant]
    Par MegaBigBoss dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 16/03/2006, 21h28
  5. Bouton Reset
    Par claralavraie dans le forum Balisage (X)HTML et validation W3C
    Réponses: 10
    Dernier message: 27/12/2005, 11h28

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo