bonjour,

J'ai besoin d'une methode qui recupere tous les dessins d'un JPanel et qui l'associe a un JPanel. Autrement dit, jaimerais definir un JPanel qui récupere tous les dessins que j'ai fait sur un autre JPanel.

Une telle methode existe t'elle ?

Si vous n'avez pas compris voici mon code :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
if(e.getSource() == AffEnt){
 
                try {
 
                    CollectionEntite C = new CollectionEntite(this,FS2);
                } catch (SQLException ex) {
                    ex.printStackTrace();
                }
 
        }
FS2 étant mon JPanel et this un objet de type "agl"...

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
  JPanel Draw;    
   Agl a;
    /** Creates a new instance of CollectionEntite */
    public CollectionEntite(Agl a,JPanel p) throws SQLException {
      //construction de la fenetre
            this.a=a;
            Draw=p;
        .........................
j'associe mes parametres ..

et lorsque je clique sur ok :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
 
if(e.getSource() == ok)
        {
           String nom=c.getSelectedItem();
           int i= findIndexEnt(nom);      
           Entite E=List[i];
           System.out.println(E);
           E.setDraw(Draw);
           E.setAgl(a);
           E.paint();
 
           this.dispose();
        }
List étant un tableau d'entité

Dans entite.java :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
 
    void setAgl(Agl a) {
        this.a=a;
    }
et je dessine :
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 paint(){        
 
                 Graphics g=null;	
                g=Draw.getGraphics();
 
 
                g.setColor(Color.WHITE);
                g.fillRect(positionX+1,positionY+1,largeur-1,hauteur-1);
                g.setColor(Color.BLACK);
                g.drawRect(positionX,positionY,largeur,hauteur);
 
      // BLA BLA BLA BLA BLA BLA 
 
               a.setPanel(Draw.getGraphics());
    }
le composant se dessine bien mais s'efface lorsque je reduit la fenetre ou la redimmessione donc j'ai fait appel a setPanel qui je pensait devait recuperé tous les dessin et les appliquer ainsi :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
    void setPanel(Graphics graphics) {
        FS2.update(graphics);
    }

mais le hic c'est que ca ne marche pas : pourtant j'ai bien redefinie la methode paint de mon JPanel en le passant en parametre
comment je fais pour que quand je redessinne la surface de FS2 il ne perde pas les modifications ?

merci