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

avec Java Discussion :

Comment faire 2sec d'attente


Sujet :

avec Java

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    82
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 82
    Points : 35
    Points
    35
    Par défaut Comment faire 2sec d'attente
    Bonjour, mon code actuel est celui-ci :
    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
    public String read()
        {
        	String chaine = "";
            System.out.println(chaine.getBytes());
            byte[] readBuffer = new byte[20];
            try
            {
            	System.out.println("Je suis ici aussi");
            	int numBytes = inputStream.read(readBuffer);
            	for(int i=0; i<numBytes; i++)
            	{
            		chaine = chaine + (char) readBuffer[i];
            	}
                    chaine = String.format("%s\n", chaine);
            }
            catch (IOException e) {}
            if (chaine != null)
            {
                try
                {
                        System.out.println("Je suis par ici");
                        int numBytes = inputStream.read(readBuffer);
                        for(int i=0; i<numBytes; i++)
                        {
                                chaine = chaine + (char) readBuffer[i];
                        }
                        chaine = chaine + "\n";
                        System.out.println(chaine);
                }
                catch (IOException e) {}
            }
            return chaine;
        }
    Maintenant j'aimerais que lorsque je rentre dans ce public si au bout de 2 sec chaine est toujours vide le programme quitte.

    quelqu'un peut il m'aider.

    Merci d'avance

  2. #2
    Expert éminent sénior

    Avatar de vermine
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    6 582
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2008
    Messages : 6 582
    Points : 79 915
    Points
    79 915
    Par défaut
    Il te faudrait d'abord une boucle sur le

    afin qu'il teste plusieurs fois la valeur de chaine et qu'il ne termine pas trop vite le programme après le premier passage.
    Il faudrait aussi un thread qui exécute la méthode wait(). Mais je ne sais plus comment on fait les threads/monitor/etc.
    Le thread serait détâché du programme et aurait pour but d'attendre 2 secondes et ensuite de prévenir le programme qui pourrait alors se terminer d'une certaine manière.

  3. #3
    Membre averti
    Inscrit en
    Octobre 2007
    Messages
    311
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 311
    Points : 318
    Points
    318
    Par défaut
    Il me semble que c'est quelquechose du genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    synchronized(this) {
      wait(2000);
    }
    A tester...

  4. #4
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    82
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 82
    Points : 35
    Points
    35
    Par défaut
    Merci mais en faite je me suis tromper

    j'ai cela dans ma Premiere classe :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    private void jButton3ActionPerformed(java.awt.event.ActionEvent evt) {                                         
    	jTextArea1.setText(manager.read("ATS200?"));
            jComboBox2.addItem(jTextArea1.getText());
            jTextArea1.setText(manager.read("ATS201?"));
            jComboBox2.addItem(jTextArea1.getText());
    }
    et ca dans l'autre :

    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
    public String read(String string)
        {
        	String chaine = "";
            System.out.println(chaine.getBytes());
            byte[] readBuffer = new byte[20];
            try
            {
                outputStream.write(string.getBytes());
                outputStream.write("\n".getBytes());
                int numBytes = inputStream.read(readBuffer);
                for(int i=0; i<numBytes; i++)
                {
                    chaine = chaine + (char) readBuffer[i];
                }
                chaine = String.format("%s\n", chaine);
            }
            catch (IOException e) {}
            return chaine;
        }
    J'aimerai en faite dans ma premiere classe faire une ptite pausse de 0.5seconde entre mes 2 demandes.

    Comment il faut faire?

    Merci d'avance

  5. #5
    Membre chevronné
    Avatar de Deadpool
    Homme Profil pro
    Inscrit en
    Novembre 2005
    Messages
    1 312
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Novembre 2005
    Messages : 1 312
    Points : 2 011
    Points
    2 011
    Par défaut
    Salut.

    De manière générale pour mettre le thread courant en pause pendant une durée déterminée c'est :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Thread.sleep(500); //la durée d'attente est à exprimer en millisecondes.

  6. #6
    Membre expert
    Avatar de natha
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    2 346
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Janvier 2006
    Messages : 2 346
    Points : 3 083
    Points
    3 083
    Par défaut
    En un peu mieux :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    TimeUnit.SECONDS.sleep(2);

  7. #7
    Rédacteur/Modérateur

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

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

    Informations forums :
    Inscription : Août 2005
    Messages : 6 854
    Points : 22 878
    Points
    22 878
    Billets dans le blog
    51
    Par défaut
    STOP, stop, stop, stop, stop... si c'est lie a une interface graphique, mieux vaut ne pas faire de sleep() ou de wait() dans l'EDT (la Thread de Swing), cela peut avoir des concequences desagreables pour l'utilisateur voir carrement catastrophiques si c'est mal gere...

    Un simple Timer Swing devrait suffir...

Discussions similaires

  1. [XL-2007] Comment faire un message d'attente durant la mise à jour de ma macro ?
    Par Debutant10 dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 10/05/2012, 21h34
  2. Réponses: 2
    Dernier message: 28/04/2009, 15h26
  3. [VB.NET] comment faire un message d'attente
    Par hellosct1 dans le forum Windows Forms
    Réponses: 1
    Dernier message: 27/09/2006, 17h43
  4. Attente bloquante : comment faire?
    Par ®om dans le forum Général Java
    Réponses: 14
    Dernier message: 25/09/2006, 10h28
  5. Comment faire pour créer un bitmap
    Par GliGli dans le forum C++Builder
    Réponses: 2
    Dernier message: 24/04/2002, 15h41

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