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 :

Animer un empilement de rectangles


Sujet :

AWT/Swing Java

  1. #1
    Membre habitué Avatar de zangaloni
    Profil pro
    Étudiant
    Inscrit en
    Mars 2009
    Messages
    474
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2009
    Messages : 474
    Points : 151
    Points
    151
    Par défaut Animer un empilement de rectangles
    bonjour,
    j'essaye d'animer un petit rectangle qui va entrer et sortir de mon rectangle(comme si le grand rectangle est ma pile et le petit est objet que j'empile et je dépile)mais le code se plante
    merci
    voici le code de ma classe Pile:
    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
     
     
    public class Pile extends JFrame{
        private boolean backX;
     
    private	JPanel pan=new JPanel();
     
    private Panneau pa=new Panneau();
    Pile(){
    	setLocationRelativeTo(null);
    	this.setName("pile");
    	this.setSize(200,200);
    	pan.setBackground(Color.white);
        pan.setLayout(new BorderLayout());
        this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
     
        pan.add(pa, BorderLayout.CENTER);
    	this.setContentPane(pan);
    	setVisible(true);
    	go();
    }
    public void go(){
    	int x=pa.getPosX();
    	while(true){
    		 if(x < 1)backX = false;
             if(x > pa.getWidth())backX = true; 
             if(!backX)pa.setPosX(++x);
             else pa.setPosX(--x);
             pa.repaint();
     
             try {
                     Thread.sleep(20);
             } catch (InterruptedException e) {
                     // TODO Auto-generated catch block
                     e.printStackTrace();
             }
         } 
    	}
    }


    et voici le code ma classe Panneau:

    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
     
     
     
    public class Panneau extends JPanel {
    	private int PosX=0;
    	private int PosY=0;
     
    		public void paintComponent(Graphics g){
    g.setColor(Color.white);
    g.fillRect(0,0,this.getWidth(),this.getHeight);
    			g.setColor(Color.pink);
    			g.fillRect(PosX,0,50,50);
    		    g.setColor(Color.black);
    			g.drawRect(0,0,180,60);
     
    		}
     
    public int getPosX(){
    	return PosX;
    }
    public int getPosY(){
    	return PosY;
    }
    public void setPosX(int x){
    	this.PosX=x;
    }
    public void setPosY(int y){
    	this.PosY=y;
    }
    }

  2. #2
    Membre averti
    Inscrit en
    Juin 2006
    Messages
    570
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 570
    Points : 340
    Points
    340
    Par défaut
    Le code plante ou ? Il faudrait la pile d'erreur.

  3. #3
    Membre habitué Avatar de zangaloni
    Profil pro
    Étudiant
    Inscrit en
    Mars 2009
    Messages
    474
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2009
    Messages : 474
    Points : 151
    Points
    151
    Par défaut
    bonjour,
    une fois je clique sur le bouton pile,une fenêtre s'affiche et puis plus rien ne veux marcher même la fermeture de fenêtre

  4. #4
    Membre averti
    Inscrit en
    Juin 2006
    Messages
    570
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 570
    Points : 340
    Points
    340
    Par défaut
    Mais dans la console, tu n'as pas d'erreur ?

  5. #5
    Membre habitué Avatar de zangaloni
    Profil pro
    Étudiant
    Inscrit en
    Mars 2009
    Messages
    474
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2009
    Messages : 474
    Points : 151
    Points
    151
    Par défaut
    non

  6. #6
    Membre averti
    Inscrit en
    Juin 2006
    Messages
    570
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 570
    Points : 340
    Points
    340
    Par défaut
    A ce moment c'est que le code ne se plante pas.
    Tu mets ton panneau pa au centre d'un Border Layout. A partir de ce moment, faire pa.setPos(...) ne fera rien du tout puisque c'est le layout qui place le composant.
    Essaye avec un layout null si tu veux faire comme ca.

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

Discussions similaires

  1. animer un rectangle avec Thread
    Par zangaloni dans le forum Général Java
    Réponses: 1
    Dernier message: 27/05/2009, 02h26
  2. Rectangle SOUS animation, sous IE avec swfobject
    Par cebad dans le forum Flash
    Réponses: 0
    Dernier message: 05/03/2009, 15h13
  3. animation et mouvement d'un rectangle avec C++
    Par open_source dans le forum C++
    Réponses: 5
    Dernier message: 10/12/2008, 10h44
  4. [Rectangle] Comment y réaliser une Color Animation ?
    Par Anto03 dans le forum Windows Presentation Foundation
    Réponses: 8
    Dernier message: 30/09/2008, 15h24
  5. Animation d'un rectangle
    Par davidg.fr dans le forum Flash
    Réponses: 6
    Dernier message: 11/09/2007, 13h03

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