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

AWT/Swing Java Discussion :

Mettre le curseur souris en sablier pdt thread


Sujet :

AWT/Swing Java

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    159
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 159
    Points : 88
    Points
    88
    Par défaut Mettre le curseur souris en sablier pdt thread
    Bonjour,

    je voudrais mettre le pointeur de la souris sous forme de sablier pdt l execution d un thread

    je m appuie sur les fonctions

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    setCursor(Cursor.getDefaultCursor());
    setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR));
    pour afficher le pointeur en fleche ou en sablier cependant je n arrive pas a utiliser ces fonctions dans mon thread j ai une erreur
    "cannot resolve symbol method setCursor..." et si je veus le mettre dans ma classe principale qui appelle le thread j ai essayé


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
          if(thread_test.isInterrupted()){
              setCursor(Cursor.getDefaultCursor());
            }
    Sans succés si quelqu un a une idée merci

  2. #2
    Membre habitué Avatar de nicgando
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    128
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2006
    Messages : 128
    Points : 163
    Points
    163
    Par défaut
    Ce code peut t'aider si tu veux faire la modification du curseur dans le Thread. Sinon tu peux changer le curseur avant de faire le Thread.start() et le stopper quand tu stop ton Thread.
    Ton erreur "cannot resolve symbol method setCursor..." doit venir du fait que tu essayes d'accéder à la méthode curseur sans avoir de référence sur une java.awt.Window ou que tu n'es pas dans une classe héritant de java.awt.Window

    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
    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
    75
    76
     
    package tests;
     
    import java.awt.Container;
    import java.awt.Cursor;
    import java.awt.FlowLayout;
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
    import javax.swing.JButton;
    import javax.swing.JFrame;
    import javax.swing.WindowConstants;
     
    /**
     * Created on 9 mars 2006.
     * 
     * @author nicgando <br/>
     */
     
    public class Sablier extends JFrame implements ActionListener {
     
      private final JButton launch = new JButton("launch");
      private final JButton stop = new JButton("stop");
      private final Thread diplayer = new Thread() {
        public void run() {
          Sablier.super.setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR));
          while (true) {
            System.out.println("tread is running wait 1s");
            try {
              Thread.sleep(1000);
            } catch (InterruptedException e) {
              System.out.println("tread must stop exit display loop");
              Sablier.super.setCursor(Cursor.getDefaultCursor());
              break;
            }
          }
        }
      };
     
      public Sablier() {
        super.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
        super.setTitle("test sablier");
        super.setSize(100, 200);
     
        Container main = super.getContentPane();
        main.setLayout(new FlowLayout());
     
        this.launch.addActionListener(this);
        main.add(this.launch);
     
        this.stop.addActionListener(this);
        this.stop.setEnabled(false);
        main.add(this.stop);
     
        super.pack();
     
      }
     
      public void actionPerformed(ActionEvent e) {
        if (e.getSource() == this.launch) {
          this.launch.setEnabled(false);     
          this.diplayer.start();
          this.stop.setEnabled(true);
          return;
        }
        if (e.getSource() == this.stop) {
          this.launch.setEnabled(true);
          this.diplayer.interrupt();    
          this.stop.setEnabled(false);
          return;
        }
      }
     
      public static void main(String[] args) 
        new Sablier().setVisible(true);
      }
    }
    Pushing the limits ...

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    159
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 159
    Points : 88
    Points
    88
    Par défaut
    Merci beaucoup avec tt ces pistes je devrais pouvoir m en sortir

  4. #4
    Membre averti
    Inscrit en
    Avril 2004
    Messages
    503
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 503
    Points : 445
    Points
    445
    Par défaut
    Moi je ne vois tout simplement pas l'intéret d'instancier un Thread si c'est pour bloquer l'utilisateur en lui affichant un beau sablier d'attente pendant la durée du Tread!

    Le thread est au départ fait justement pour permettre de lancer une tache en parrallèle du programme principal pour pouvoir continuer à travailler...

    Quelque chose doit m'échapper je pense...
    L'interêt du doute est que cela fait avancer.
    (parenthèses)Je suis à la recherche d'un emploi sur Valence(26) et ses environs.
    mon cv:
    http://charegis.netcv.org/

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

Discussions similaires

  1. mettre le Curseur en sablier durant l'attente
    Par louvinon dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 17/04/2012, 09h01
  2. Comment mettre le curseur flèche+sablier
    Par Ceubex dans le forum Débuter
    Réponses: 2
    Dernier message: 13/01/2011, 18h20
  3. Réponses: 3
    Dernier message: 11/10/2005, 19h13
  4. [JTextArea] comment mettre le curseur à la fin du texte
    Par romuluslepunk dans le forum Composants
    Réponses: 2
    Dernier message: 12/08/2005, 09h19
  5. Comment mettre le curseur d'un Memo sur le Canvas d'une Form ?
    Par julie20 dans le forum Composants VCL
    Réponses: 3
    Dernier message: 27/08/2003, 13h24

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