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 :

bloquer l'exécution d'une méthode


Sujet :

avec Java

  1. #1
    Membre du Club
    Homme Profil pro
    Inscrit en
    Décembre 2009
    Messages
    67
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations forums :
    Inscription : Décembre 2009
    Messages : 67
    Points : 66
    Points
    66
    Par défaut bloquer l'exécution d'une méthode
    salut tout le monde !! je veut savoir comment bloqué une méthode ou genre ré ré-exécuté la méthode je m'explique
    voila ma méthode
    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
     
     String handel;
            Document doc;
            int pos = textzone.viewToModel(e.getPoint());
            elem = textzone.getStyledDocument().getCharacterElement(pos);
            as = elem.getAttributes(); 
            int posdepart = pos;
            if(StyleConstants.getBidiLevel(as) != 20)
            {
                //return ;
            }
            for(; StyleConstants.getBidiLevel(as) == 20; as = textzone.getStyledDocument().getCharacterElement(posdepart).getAttributes())
            {
                posdepart--;
            }
     
            handel = null;
            doc = textzone.getDocument(); 
            try
            {
            	//System.out.println(posdepart);
            	handel = doc.getText(0, doc.getLength()).substring(posdepart, doc.getText(0, doc.getLength()).indexOf(" ", posdepart+1));
     
            }
            catch(BadLocationException ex) {}
            if(handel == null)
            {
                // ici je veut ré-exécuté la methode
            }
            handel = handel.replaceAll(">", "").trim(); 
            hyperlinkReceiver.popupInfos(handel, e);
            textzone.setCursor(new Cursor(12));
            //ici aussi bloquage ou execution
            if(StyleConstants.getBidiLevel(as) == 21 || StyleConstants.getBidiLevel(as) == 22)
            {
                textzone.setCursor(new Cursor(12));
            } else
            {
                //hyperlinkReceiver.hidePopupInfos();
                textzone.setCursor(new Cursor(0));
            }
    par ce que si
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    if(StyleConstants.getBidiLevel(as) != 20)
    je vais obtenir une erreur je veut éviter sa
    et merci d'avance

  2. #2
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    j'ai pas vraiment compris ce que vous voulez faire. Vous voulez attendre que StyleConstants.getBidiLevel(as) prenne la valeur 20? Si oui, il faudra attendre sur un sémaphore (méthode wait() ) et avoir le thread qui change la valeur qui fasse un notifyAll sur ce même sémaphore. Mais c'est vraiment curieux comme besoin.

  3. #3
    Membre du Club
    Homme Profil pro
    Inscrit en
    Décembre 2009
    Messages
    67
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations forums :
    Inscription : Décembre 2009
    Messages : 67
    Points : 66
    Points
    66
    Par défaut
    Citation Envoyé par tchize_ Voir le message
    j'ai pas vraiment compris ce que vous voulez faire. Vous voulez attendre que StyleConstants.getBidiLevel(as) prenne la valeur 20? Si oui, il faudra attendre sur un sémaphore (méthode wait() ) et avoir le thread qui change la valeur qui fasse un notifyAll sur ce même sémaphore. Mais c'est vraiment curieux comme besoin.
    lol pas curieux mais le textzone c'est une zone de text pour une discussion dans un salon irc je récupéré le mot si c'est un nickname je change le curseur et j'affiche une popup qui contiens c'est info
    et ce que je veut faire moi c 'est un genre de break ou go to
    par exemple dans cette parti
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    handel = handel.replaceAll(">", "").trim(); 
            hyperlinkReceiver.popupInfos(handel, e);
            textzone.setCursor(new Cursor(12));
    // ici c'est correct je fait un break et je ne continue pas d'exécuter le reste de la fonction

  4. #4
    Membre du Club
    Homme Profil pro
    Inscrit en
    Décembre 2009
    Messages
    67
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations forums :
    Inscription : Décembre 2009
    Messages : 67
    Points : 66
    Points
    66
    Par défaut
    j'ai trouver sa
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    break MISSING_BLOCK_LABEL
    une idée comment l'utiliser ?

  5. #5
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    pour sortir d'une méthode, c'est la commande return.

  6. #6
    Membre du Club
    Homme Profil pro
    Inscrit en
    Décembre 2009
    Messages
    67
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations forums :
    Inscription : Décembre 2009
    Messages : 67
    Points : 66
    Points
    66
    Par défaut
    j'ai essayé avec return mais sa me conviens pas
    vous savez l'utilisation du label de blok ?
    comme celle la
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    break MISSING_BLOCK_LABEL_228;

  7. #7
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    Le break sert pour les boucle for et while. De plus ce que vous montrez est une utilisation du break associée à un label, chose que l'on ne fait presque jamais en java.

  8. #8
    Membre du Club
    Homme Profil pro
    Inscrit en
    Décembre 2009
    Messages
    67
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations forums :
    Inscription : Décembre 2009
    Messages : 67
    Points : 66
    Points
    66
    Par défaut
    une solution a me donné ?

  9. #9
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    si vous expliquiez clairement pourquoi return ne vous conviens pas on pourrait peut etre trouver une solution. La vous demandez à sortir de la méthode, il n'y a pas de miracle, pour sortir d'une méthode avant sa fin, c'est "return"

  10. #10
    Membre du Club
    Homme Profil pro
    Inscrit en
    Décembre 2009
    Messages
    67
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations forums :
    Inscription : Décembre 2009
    Messages : 67
    Points : 66
    Points
    66
    Par défaut
    je m'explique
    cette méthode serre a changer le curseur principalement !!!
    ya trois cas pour changer le curseur
    1- un lien ( commence par http ou www )
    2-un salon ( qui commence par "#" )
    pour sa c'est bon c'est dans ce bous de code que je réussi a le faire grace a
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    StyleConstants.getBidiLevel(as)
    3- un nickname du salon que je récupéré comme sa
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    handel = doc.getText(0, doc.getLength()).substring(posdepart, doc.getText(0, doc.getLength()).indexOf(" ", posdepart+1));
    dans ce bous de code j'obtien une erreur quand la souris passe dans une zone qui ne contien pas du text alors obliger de mettre sa
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    if(StyleConstants.getBidiLevel(as) != 20)
            {
            	textzone.setCursor(new Cursor(0));
            	// ici ré-éxacuter depuit le debut
            }
    et si c'est bon j'ai trouver le pseudo et le curseur a changer je stop l’exécution de la méthode sinon je continue pour tester st c'est un lien ou une salon par ce bout de code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    if(StyleConstants.getBidiLevel(as) == 21 || StyleConstants.getBidiLevel(as) == 22)
            {
                textzone.setCursor(new Cursor(12));
            } else
            {
                //hyperlinkReceiver.hidePopupInfos();
                textzone.setCursor(new Cursor(0));
            }
    j’espère être clair

  11. #11
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    on ne peux pas "rééxécuter" une méthode depuis le début. Le mieux que vous puissiez faire qui s'en approche c'est de réappeler vous même votre méthode.

  12. #12
    Membre du Club
    Homme Profil pro
    Inscrit en
    Décembre 2009
    Messages
    67
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations forums :
    Inscription : Décembre 2009
    Messages : 67
    Points : 66
    Points
    66
    Par défaut
    Citation Envoyé par tchize_ Voir le message
    on ne peux pas "rééxécuter" une méthode depuis le début. Le mieux que vous puissiez faire qui s'en approche c'est de réappeer vous même votre méthode.
    quand même merci beaucoup a vous ! je vais me cassé la tête avec sa ce soir

Discussions similaires

  1. bloquer le programme lors de l'exécution d'une méthode
    Par clement88 dans le forum Android
    Réponses: 3
    Dernier message: 15/03/2011, 13h43
  2. Exécution d'une méthode dans Page_Load
    Par Definol dans le forum ASP.NET
    Réponses: 6
    Dernier message: 17/07/2007, 15h09
  3. [JAVA]Ralentir l'exécution d'une méthode
    Par michaeljeru dans le forum AWT/Swing
    Réponses: 4
    Dernier message: 07/03/2007, 10h48
  4. Réponses: 4
    Dernier message: 31/10/2006, 09h12
  5. Non exécution d'une méthode repaint()
    Par Flophx dans le forum AWT/Swing
    Réponses: 7
    Dernier message: 05/05/2006, 18h04

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