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 :

Rendre une bouton Autoclick chaque 5 secondes


Sujet :

JavaFX

  1. #1
    Membre confirmé
    Homme Profil pro
    UUA
    Inscrit en
    Mars 2017
    Messages
    82
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Etats-Unis

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

    Informations forums :
    Inscription : Mars 2017
    Messages : 82
    Par défaut Rendre une bouton Autoclick chaque 5 secondes
    bonjours.....comment rendre cette bouton là Autoclick apres chaque 5 seconde à l'aide de :

    btn.oncliCk();

    2éme probléme: lorsque je minimise la fenêtre la bouton disparue car elle était juste fixer à une position X ,Y

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    btn.setTranslateX(600);
    btn.setTranslateY(10);
    je veux qu'elle soit dans cette position mais aussi compatible au taille de fenêtre (lorsque je minimise la taille de fenêtre ,la position X,Y de bouton doivent être compatible au taille de fenêtre )

    code de bouton:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
     
    Button btn = new Button();
            btn.setText("Live Refresh ... ");
            btn.setOnAction(new EventHandler<ActionEvent>() {
                @Override
                public void handle(ActionEvent event) {
     
                	try {
     
    					refreshSeries(NOM_DU_FICHIER); 
     
    				} catch (IOException e) {
    					// TODO Auto-generated catch block
    					e.printStackTrace();
    				}
     
                }
            });
     
            btn.setTranslateX(600);
             btn.setTranslateY(10);

  2. #2
    Rédacteur/Modérateur

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

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

    Informations forums :
    Inscription : Août 2005
    Messages : 6 909
    Billets dans le blog
    54
    Par défaut
    Et le layout / le parent c'est quoi ? On peut avoir du code pour tester ?
    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

  3. #3
    Membre confirmé
    Avatar de guatto
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2014
    Messages
    179
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : Algérie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2014
    Messages : 179
    Par défaut
    Bonjour,

    pour exécuter une action avec ton bouton tu as besoin de 3 choses :

    -l’événement de ton Bouton (OnAction)
    -la gestion du temps (un Timer)
    -la gestion de l'action du bouton (un TimerTask)

    en résumé voici comment écrire tout ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
     
     
    //Evénement :
    btn.setOnAction(evt->{
     
          //Ce que tu veux exécuter avec le button
     
    });
     
    //Timer :
    Timer timer = new Timer();
     
    //TimerTask :
    TimerTask action = new TimerTask()
    {
     
            public void run(){
     
                    btn.fire(); //Simule un clique sur le bouton
     
            }
     
    };
     
    //Actionne le Timer :
    timer.schedule(action,0,5000); //5000 millisecondes équivaut à 5 secondes, c'est à dire un intervalle de 5 secondes entre chaque action
    Maintenant pour ton 2eme problème, il suffit d'utiliser un Layout comme te l'a conseillé "bouye", personnellement je te conseille d'utiliser un AnchorPane, pourquoi ? Parce que c'est facile à gérer (avec ses méthodes statiques assez simples à comprendre) et ça résous le problème de redimensionnement, exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
     
    Button btn = new Button("test");
     
    AnchorPane.setTopAnchor(btn, 10.0); //Une marge de 10 pixels entre la partie supérieur du bouton et celle de la fenêtre
    AnchorPane.setRightAnchor(btn, 10.0); //Même chose mais du coté droit
    Voila, j'espère ne pas m'être trompé sur des bases, si tu veux plus d'informations, tu peux te référer à la documentation officielle Ici.

  4. #4
    Membre confirmé
    Homme Profil pro
    UUA
    Inscrit en
    Mars 2017
    Messages
    82
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Etats-Unis

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

    Informations forums :
    Inscription : Mars 2017
    Messages : 82
    Par défaut
    pour la 1ére probleme ..il m'indique :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Exception in thread "Timer-0" java.lang.IllegalStateException: Not on FX application thread; currentThread = Timer-0

  5. #5
    Membre confirmé
    Avatar de guatto
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2014
    Messages
    179
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : Algérie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2014
    Messages : 179
    Par défaut
    Bonsoir,

    Je suppose que tu utilises du FXML pour créer ton interface graphique, alors pour mettre à jour celle-ci essaye de procéder comme suit :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    Platform.runLater(() -> {
     
         //Btn.fire();
     
      }
    );
    J'espère que ça résoudra ton problème !

  6. #6
    Membre confirmé
    Homme Profil pro
    UUA
    Inscrit en
    Mars 2017
    Messages
    82
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Etats-Unis

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

    Informations forums :
    Inscription : Mars 2017
    Messages : 82
    Par défaut
    nn je crois que la problème en (esq ils marchent en javaFx ?)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    import java.util.Timer;
    import java.util.TimerTask;

  7. #7
    Rédacteur/Modérateur

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

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

    Informations forums :
    Inscription : Août 2005
    Messages : 6 909
    Billets dans le blog
    54
    Par défaut
    Tu peux les utiliser si tu veux (mais bon JavaFX a aussi des classes qui permettent de faire ça comme Service et ScheduledService) par contre tu es prié d'invoquer Platform.runLater() quand tu lances ton action a la fin pour que cette dernière s’exécute dans le bon thread.
    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

  8. #8
    Membre confirmé
    Homme Profil pro
    UUA
    Inscrit en
    Mars 2017
    Messages
    82
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Etats-Unis

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

    Informations forums :
    Inscription : Mars 2017
    Messages : 82
    Par défaut
    ça marche pas ...elle juste m'affiche l'erreur que j'ai indiqué...

  9. #9
    Rédacteur/Modérateur

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

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

    Informations forums :
    Inscription : Août 2005
    Messages : 6 909
    Billets dans le blog
    54
    Par défaut
    Ton code ?
    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

  10. #10
    Membre confirmé
    Homme Profil pro
    UUA
    Inscrit en
    Mars 2017
    Messages
    82
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Etats-Unis

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

    Informations forums :
    Inscription : Mars 2017
    Messages : 82
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
     
     
            Button btn = new Button();
            btn.setText("Live Refresh ... ");
            btn.setOnAction(new EventHandler<ActionEvent>() {
                @Override
                public void handle(ActionEvent event) {
     
                	try {
     
    					refreshSeries(NOM_DU_FICHIER); 
     
    				} catch (IOException e) {
    					// TODO Auto-generated catch block
    					e.printStackTrace();
    				}
     
                }
            });
     
     
            //Timer :
    Timer timer = new Timer();
     
    //TimerTask :
    TimerTask action = new TimerTask()
    {
     
            public void run(){
     
                    btn.fire(); //Simule un clique sur le bouton
     
            }
     
    };
     
    //Actionne le Timer :
    timer.schedule(action,0,5000);

  11. #11
    Rédacteur/Modérateur

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

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

    Informations forums :
    Inscription : Août 2005
    Messages : 6 909
    Billets dans le blog
    54
    Par défaut
    Et donc tu ne suis pas les conseils que guatto et moi t'avons donné : ton timer doit invoquer Platform.runLater() qui lui invoquera le clic du bouton.
    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

  12. #12
    Membre confirmé
    Homme Profil pro
    UUA
    Inscrit en
    Mars 2017
    Messages
    82
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Etats-Unis

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

    Informations forums :
    Inscription : Mars 2017
    Messages : 82
    Par défaut
    j'ai essayé les 2 ...(le même erreur)

  13. #13
    Membre confirmé
    Avatar de guatto
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2014
    Messages
    179
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : Algérie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2014
    Messages : 179
    Par défaut
    Salut, peux-tu nous montrer comment tu as procédé (dans ton code) ?

  14. #14
    Membre confirmé
    Homme Profil pro
    UUA
    Inscrit en
    Mars 2017
    Messages
    82
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Etats-Unis

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

    Informations forums :
    Inscription : Mars 2017
    Messages : 82
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
     
           Button btn = new Button();
            btn.setText("Live Refresh ... ");
            btn.setOnAction(new EventHandler<ActionEvent>() {
                @Override
                public void handle(ActionEvent event) {
     
                	try {
     
    					refreshSeries(NOM_DU_FICHIER); 
     
    				} catch (IOException e) {
    					// TODO Auto-generated catch block
    					e.printStackTrace();
    				}
     
                }
            });
     
     
            //Timer :
    Timer timer = new Timer();
     
    //TimerTask :
    TimerTask action;
                action = new TimerTask()
                {
     
                    Platform.runLater(() -> {
     
                       btn.fire(); //Simule un clique sur le bouton
     
                    }
     
                };
     
    //Actionne le Timer :
    timer.schedule(action,0,5000);

  15. #15
    Rédacteur/Modérateur

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

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

    Informations forums :
    Inscription : Août 2005
    Messages : 6 909
    Billets dans le blog
    54
    Par défaut
    Ce code ne compile pas.

    De mon coté, aucun soucis :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    package autoclick;
     
    import java.util.Timer;
    import java.util.TimerTask;
    import javafx.application.Application;
    import javafx.application.Platform;
    import javafx.scene.Scene;
    import javafx.scene.control.Button;
    import javafx.scene.layout.StackPane;
    import javafx.stage.Stage;
     
    public class Main extends Application {
     
        @Override
        public void start(Stage primaryStage) {
            final Button btn = new Button();
            btn.setText("Live Refresh ... ");
            btn.setOnAction(actionEvent -> System.out.println("Click!"));
            //Timer :
            final Timer timer = new Timer();
            //TimerTask :
            TimerTask action;
            action = new TimerTask() {
                public void run() {
                    Platform.runLater(() -> btn.fire()); //Simule un clique sur le bouton
                }
            };
            //Actionne le Timer :
            timer.schedule(action, 0, 5000);
            StackPane root = new StackPane();
            root.getChildren().add(btn);
            Scene scene = new Scene(root, 300, 250);
            primaryStage.setTitle("Hello World!");
            primaryStage.setScene(scene);
            primaryStage.show();
        }
     
        public static void main(String[] args) {
            launch(args);
        }
    }
    De toutes manières un ScheduleService serait probablement plus approprié pour cela...
    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

Discussions similaires

  1. appelle d'une page php a chaque x seconde
    Par rezguiinfo dans le forum Balisage (X)HTML et validation W3C
    Réponses: 6
    Dernier message: 12/01/2011, 17h28
  2. rafraichir une webview chaque n secondes
    Par perloutta dans le forum Composants graphiques
    Réponses: 4
    Dernier message: 18/05/2010, 15h33
  3. [WD10] comment rendre un bouton grisé après une opération?
    Par amilas dans le forum WinDev
    Réponses: 2
    Dernier message: 23/08/2009, 17h09
  4. Effectuer une action a chaque clic bouton
    Par atar64 dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 09/07/2007, 17h53
  5. Comment mettre à jour une page jsp chaque seconde
    Par zizoux5 dans le forum Struts 1
    Réponses: 6
    Dernier message: 25/05/2007, 18h37

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