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 :

InvokeLater+ prblm de variable


Sujet :

AWT/Swing Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre expérimenté
    Inscrit en
    Janvier 2006
    Messages
    257
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 257
    Par défaut InvokeLater+ prblm de variable
    Bonjour j'essai de rendre threadSafe un insertString que je fait dans un styledDocument. mais j'ai un petit probleme avec l'erreur suivante :

    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
     
    public void insert(String text,String style) {
    		try {
    		SwingUtilities.invokeLater(
    				new Runnable() {
    				public void run() {
    					try {
     
    //erreur ici a la ligne suivante pour text et style
    					sd.insertString(sd.getLength(),text,sd.getStyle(style));
    					} catch (Exception e) {
     
    					}
    				}
    				}
    		);
    Le compilo me dit :

    Cannot refer to a non-final variable text inside an inner class defined in a different method
    pour la variable text idem pouyr la variable style, sachant que je ne peux pas du tout rendre ces variable final qqun a t'il une idée sur la façon de faire ???

    l'idee c'est d'inserer du texte avec un certain style dans mon document mais en faisant la chose dans l'EDT

  2. #2
    Membre Expert
    Avatar de ®om
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    2 815
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 815
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    public void insert(final String text, final String style)
    Il n'y a aucun inconvénient à déclarer ces variables finales (d'ailleurs je trouve que tous les paramètres devraient être implicitement finaux).

  3. #3
    Membre expérimenté
    Inscrit en
    Janvier 2006
    Messages
    257
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 257
    Par défaut
    Bon ok pour le final mais se qui se passe maintenant c'est que l'affichage dans le documment n'est pas fait dans l'ordre, j'ai les mots qui sont melanger, comme si l'EDT n'affichait pas sequentiellement les insertString que je lui passe...

    EDIT : j'ai essayer le ivokeAndWait au lieu du invokeLater et dans ce cas l'affichage devient d'une lenteur scandaleuse ...

  4. #4
    Membre Expert
    Avatar de ®om
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    2 815
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 815
    Par défaut
    Citation Envoyé par guis14
    Bon ok pour le final mais se qui se passe maintenant c'est que l'affichage dans le documment n'est pas fait dans l'ordre, j'ai les mots qui sont melanger, comme si l'EDT n'affichait pas sequentiellement les insertString que je lui passe...
    Si tu les fais à partir d'un même thread, il les insère dans l'ordre où tu lui donnes (l'EDT est FIFO)...
    Tu ne dois pas lui donner dans le bon ordre...

  5. #5
    Membre expérimenté
    Inscrit en
    Janvier 2006
    Messages
    257
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 257
    Par défaut
    Autant pour moi en fait j'appelait une méthode qui faisait un insertString mais qui avant definissait des style. le problèmùe c'est que la definision des style n'etait pas fait dans l'EDT donc le style n'etait pas forcement pret au moment de l'affichage d'ou le mélange ...

    Merci a vous

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 18/07/2002, 13h32
  2. variables locales ou globales ???
    Par elvivo dans le forum C
    Réponses: 13
    Dernier message: 03/07/2002, 08h22
  3. Procédure avec un nombre variable d'arguments
    Par charly dans le forum Langage
    Réponses: 15
    Dernier message: 21/06/2002, 11h08
  4. Réponses: 4
    Dernier message: 05/06/2002, 14h35
  5. les variables globales static
    Par gRRosminet dans le forum C
    Réponses: 8
    Dernier message: 27/04/2002, 08h34

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