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 :

[Thread] Déplacement bouton


Sujet :

AWT/Swing Java

  1. #1
    Membre émérite Avatar de Madfrix
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    2 326
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 326
    Points : 2 566
    Points
    2 566
    Par défaut [Thread] Déplacement bouton
    Bonjour

    je réalise actuellement une application java dans laquelle mes boutons (qui sont en fait des JPanel + image de fond) peuvent se déplacer à gauche afin de faire apparaître des sous menus ou à droite pour revenir dans leur état initial.

    Je réalise ces déplacement via 2 threads qui sont déclenchés lors d'un évenement mouseReleased associé à une récupération de coordonnées en x pour savoir si le déplacement doit s'effectuer vers la gauche ou vers la droite :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    public void mouseReleased(MouseEvent e) {
     
    		if(e.getSource() == transactions && transactions.getBounds().x == 60){
    			Dep_gauche dep_gauche = new Dep_gauche(stats, graphiques, transactions, odds, options, quitter, transactions);
    			dep_gauche.start();
    		}
     
    		if(e.getSource() == transactions && transactions.getBounds().x == 10){
    			Dep_droit dep_droit = new Dep_droit(stats, graphiques, transactions, odds, options, quitter, transactions);
    			dep_droit.start();
    		}
     
    	}
    et voici le code de mon thread "dep_gauche" :

    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
     
    public class Dep_gauche extends Thread{
     
    	public JPanel stats, graphiques, transactions, odds, options, quitter, origine;
     
    	public Dep_gauche(JPanel stats, JPanel graphiques, JPanel transactions, JPanel odds, JPanel options, JPanel quitter, JPanel origine){
     
     
     
    		this.stats = stats;
    		this.graphiques = graphiques;
    		this.transactions = transactions;
    		this.odds = odds;
    		this.options = options;
    		this.quitter = quitter;
    		this.origine = origine;
     
    	}
     
     
     
    	public void run(){
    		boolean condition = true;
     
    		while(condition == true){
    			stats.setBounds(stats.getBounds().x - 1, stats.getBounds().y, 125, 30);
    			graphiques.setBounds(stats.getBounds().x - 1, graphiques.getBounds().y, 125, 30);
    			transactions.setBounds(stats.getBounds().x - 1, transactions.getBounds().y, 125, 30);
    			odds.setBounds(stats.getBounds().x - 1, odds.getBounds().y, 125, 30);
    			options.setBounds(stats.getBounds().x - 1, options.getBounds().y, 125, 30);
    			quitter.setBounds(stats.getBounds().x - 1, quitter.getBounds().y, 125, 30);
     
     
    			try {
    				Thread.sleep(20);
    			} catch (InterruptedException e) {}
     
    			if(stats.getBounds().x == 10){
    				condition = false;
     
    				if(origine == transactions){
    				Menu_transaction menu_transaction = new Menu_transaction();
    				menu_transaction.start();
    				}
     
    			}
     
    		}
     
    	}
    }


    Venons en au problème :

    en fait ces déplacement s'effectuent correctement mais si j'exécute le thread gauche puis après le thread droit SANS QUITTER mon JPanel, le thread droit ne se rééxécute pas je suis obligé de le quitter pour qu'il se rééxécute...

    Si je quitte mon JPanel, pas de problème...

    Quelqu'un a une idée ?

    Merci et bonne journée

  2. #2
    Membre émérite Avatar de Madfrix
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    2 326
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 326
    Points : 2 566
    Points
    2 566
    Par défaut
    Petire précision : j'ai peut être trouvé une piste...

    Je pense que à la fin de mon thread si je ne quitte pas mon JPanel avec la souris, la coordonnée en x de mon JPanel vaut toujours 60 et non pas 10 donc le thread "dep_droit" s'exécute mais la condition d'arrêt est rencontrée donc on ne voit rien à l'écran...

    Par contre, si je quitte mon Jpanel avec ma souris, la coordonnée de mon JPanel passe à 10 et donc mon thread "dep_droit" s'exécute correctement...

    Comment faire alors, si c'est bien le problème, pour reload la coordonnée en x de mon JPanel sans sortir de celui ci ?

    Merci

  3. #3
    Membre émérite Avatar de Madfrix
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    2 326
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 326
    Points : 2 566
    Points
    2 566
    Par défaut
    Problème résolu

    j'ai juste appliqué les nouvelles coordonnées au JPanel avec un setBounds(..) et là ca marche nickel.

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

Discussions similaires

  1. Visual Express 2005 : thread et bouton
    Par Themacprod2 dans le forum Visual C++
    Réponses: 1
    Dernier message: 22/04/2009, 12h13
  2. probleme thread sur bouton
    Par Greesize dans le forum Windows Forms
    Réponses: 15
    Dernier message: 22/09/2007, 19h21
  3. Gestion d'un thread aux boutons
    Par arsenik7 dans le forum AWT/Swing
    Réponses: 4
    Dernier message: 02/06/2006, 12h01
  4. Réponses: 7
    Dernier message: 03/05/2006, 16h13
  5. Thread - Déplacement d'un point à un autre
    Par aymron dans le forum Graphisme
    Réponses: 4
    Dernier message: 26/11/2005, 00h37

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