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

Java Discussion :

Utilisation d'un Thread


Sujet :

Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Décembre 2002
    Messages
    152
    Détails du profil
    Informations forums :
    Inscription : Décembre 2002
    Messages : 152
    Par défaut Utilisation d'un Thread
    Bonjour à tous,

    Je débute avec les threads et je bute depuis quelques heures sur un problème. Voici mon code :

    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
     
    SwingUtilities.invokeLater(new Runnable() {
     
    	boolean paused = false;
     
    	public void pause() {
     
    		paused = true;
    	}
     
    	public void unpause() {
     
    		paused = false;
     
    		synchronized(this) {
     
    			this.notify();
    		}
    	}
     
    	public void run() {
     
    		pipp.setVisible(true);
     
    		Thread performer = new Thread(new Runnable() {
    			public void run() {
     
    				gui.updateHistoryReport("Ouverture du fichier : " + final_filePath, false);
     
    				fileContent = FileOperations.getFileContent(final_filePath);
     
    				pipp.setVisible(false);
     
    				unpause();
    			}
    		}, "Performer");
     
    		performer.start();
     
    		pause();
     
    		while (paused) {
     
    			synchronized(this) {
     
    				try {
     
    					this.wait();
    				}
    				catch (InterruptedException e) {
    					e.printStackTrace();
    				}
    			}
    		}
     
    		// Affichage des données dans le panneau des données sources
    		gui.getDataProcessingAdvancedSplitPane().getLeftTextArea().setText(fileContent.toString());
    		gui.getDataProcessingAdvancedSplitPane().getLeftTextArea().setCaretPosition(0);
    	}
    });
    pipp.setVisible(true); doit afficher un objet PerformanceInfiniteProgressPanel (cf. http://gfx.developpez.com/tutoriel/java/swing/wait/ : Attendre avec style et l'API Swing de Romain GUY) pendant que fileContent = getFileContent(final_filePath); effectue un traitement long (récupération du contenu d'un gros fichier .txt). Lorsque le contenu du fichier est récupéré, ce dernier doit s'afficher dans un JTextArea grâce à gui.getDataProcessingAdvancedSplitPane().getLeftTextArea().setText(fileContent.toString());

    Le problème est que le PerformanceInfiniteProgressPanel ne s'affiche pas.

    Voyez-vous comment faire pour remédier à mon problème ?

    Merci d'avance pour votre aide et vos réponses.

  2. #2
    Membre confirmé
    Inscrit en
    Juillet 2009
    Messages
    33
    Détails du profil
    Informations forums :
    Inscription : Juillet 2009
    Messages : 33
    Par défaut
    Bonjour,
    J'ai une question à te poser, que doit faire ton synchronized ?
    Je connais le synchronized pour verrouiller une methode, mais jamais vu de truc pareil
    ( en + pas tres objet tout ca)

  3. #3
    Membre Expert
    Avatar de gifffftane
    Profil pro
    Inscrit en
    Février 2007
    Messages
    2 354
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire (Rhône Alpes)

    Informations forums :
    Inscription : Février 2007
    Messages : 2 354
    Par défaut
    Si tu veux te former sur les threads, le tutorial que tu suis n'est pas très adapté je trouve. Premièrement, le thread swing est quand même particulier (bien qu'étant parfaitement normal), et ensuite, depuis l'apparition du SwingWorker on ne ferait plus les choses comme il est indiqué dans ce tutorial.

    Pour les threads je te conseille de suivre tout ce qui est dans les cours java au niveau de Les meilleurs cours Java : Pour débuter. Prends celui que tu comprends le plus facilement.

Discussions similaires

  1. Utilisation d'un thread pour faire une pause.
    Par ropabo dans le forum Concurrence et multi-thread
    Réponses: 5
    Dernier message: 11/06/2006, 14h28
  2. utilisation du Multi threading
    Par chti_juanito dans le forum Concurrence et multi-thread
    Réponses: 3
    Dernier message: 30/05/2006, 10h20
  3. [JProgressBar] Utilisation d'un thread
    Par GLDavid dans le forum AWT/Swing
    Réponses: 5
    Dernier message: 16/01/2006, 11h17
  4. [C# 2.0][Form]Comment utiliser les Delegates & Threading
    Par Tips dans le forum Windows Forms
    Réponses: 8
    Dernier message: 08/01/2006, 14h22

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