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 :

Les threads en Java / Swing et le "corpus" du programme


Sujet :

AWT/Swing Java

  1. #1
    Membre régulier
    Homme Profil pro
    Inscrit en
    Avril 2010
    Messages
    116
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Avril 2010
    Messages : 116
    Points : 98
    Points
    98
    Par défaut Les threads en Java / Swing et le "corpus" du programme
    Bonsoir,
    Dsl je ne savais pas trop quoi mettre comme titre...

    Je suis actuellement en phase de conception sur un projet Java, qui contient une IHM assez complète.

    Je me baladais sur les tutoriaux du site quand je suis tombé sur ceci :
    Swing utilise son propre thread de traitement, qu'on appelle l'EDT (Event Dispatch Thread). C'est-à-dire que dans chaque application, on a 2 threads (au minimum), un thread pour le programme en lui-même et un thread pour Swing. La règle est simple, on ne fait rien de graphique dans le thread principal et on ne fait rien d'autres que du graphique dans le thread Swing. On crée donc une tâche (Runnable) contenant le code dédié à la création de la fenêtre et on l'ajoute dans le thread de Swing.
    Url : http://baptiste-wicht.developpez.com...?page=fenetres

    Or dans notre projet nous avions prévu de créer 2 threads :
    • Un thread pour gérer l'IHM affichée en permanence avec des courbes de mesures
    • Et un thread pour gérer l'acquisition des mesures à afficher sur l'IHM (Il y a tout le traitement mathématique sur les mesures, ainsi que des sauvegardes de valeurs sur fichier etc..)


    Donc si je comprends bien Swing fait un thread automatiquement ?
    Donc est-ce nécessaire dans le cadre de mon projet de faire un paquetage thread qui créera mes 2 threads ?
    Merci à vous,
    cldt

  2. #2
    Membre éclairé Avatar de JoeChip
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    536
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2008
    Messages : 536
    Points : 803
    Points
    803
    Par défaut
    Vous voulez un thread pour gérer l'interface utilisateur (ce sera celui de swing) et un pour lire les données (ce sera celui du programme) non ? En gros, vous voulez faire ce qui se fait toujours...
    Sans danger si utilisé conformément au mode d'emploi.

    (anciennement BenWillard, enfin moins anciennement que ... enfin bon c'est une longue histoire... Un genre de voyage dans le temps...)

  3. #3
    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
    c'est quoi le boulot du thread pour afficher l'IHM? Le thread de l'EDT fonctionne par un système d'évènement. Ce thread lit en permanence un pile d'évènement et fait les traitement approprié. Exemple, vous cliquez sur un bouton (évènement), le thread de l'EDT va prendre cette évènement et va appeler les actionListener du bouton en question. Donc, à priori, votre Thread d'acquisition n'aura qu'à envoyer, via la pile de l'EDT, des évènements à vos composants graphiques. Par exemple, si votre acquisition fait simplement un


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    monComposantGraphique.repaint()
    Ça poussera un évènement de repaint sur la pile de l'EDT, qui sera traité dans l'EDT et le dessin du composant (appel des méthodes paint, paintComponent, etc) se fera dans l'EDT.

Discussions similaires

  1. Les Threads en java
    Par opensource dans le forum Débuter
    Réponses: 11
    Dernier message: 06/03/2009, 09h52
  2. les threads en java
    Par karimala dans le forum Général Java
    Réponses: 2
    Dernier message: 29/12/2008, 14h45
  3. les threads en java
    Par t.n.b.g dans le forum Général Java
    Réponses: 3
    Dernier message: 31/01/2008, 17h48

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