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 :
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
9
10 if(e.getSource() == AffEnt){ try { CollectionEntite C = new CollectionEntite(this,FS2); } catch (SQLException ex) { ex.printStackTrace(); } }
j'associe mes parametres ..
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; .........................
et lorsque je clique sur ok :
List étant un tableau d'entité
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(); }
Dans entite.java :
et je dessine :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 void setAgl(Agl a) { this.a=a; }
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
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()); }
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
Partager