Salut a tous ,

Bon voila , j'ai créer un Class qui permet d'ajouter une "map" et qui fait des Zoom sur l'image ajoutée : voici le code :

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
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
 
import java.awt.Dimension;
import java.awt.Graphics;
import java.awt.Image;
import java.awt.MediaTracker;
import java.awt.Panel;
import java.awt.Toolkit;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.awt.event.MouseMotionAdapter;
 
class JImagePanel extends Panel{
	/**
         * 
         */
	private static final long serialVersionUID = 5375994938523354306L;
	private  MediaTracker tracker;
	private Image img;
	private Dimension imgSize,iniSize;
	private int zoom = 0 ;
	private int	MouseX;
	private int	MouseY;
	int transX=0;
	int transY=0;
 
	public JImagePanel(String file){
		//setSize(100,200);
		img=Toolkit.getDefaultToolkit().getImage(file);
	setLayout(null);
		tracker=new MediaTracker(this);
 
		tracker.addImage(img,0);
 
 
 
 
		addMouseListener(new MouseAdapter() {
			@Override
			public void mousePressed(MouseEvent e) {
				MouseX = e.getX();
				MouseY = e.getY();
			}
		});
 
		addMouseMotionListener(new MouseMotionAdapter() {
			@Override
			public void mouseDragged(MouseEvent e) {
				transX += e.getX()-MouseX;
				transY += e.getY()-MouseY;
				MouseX = e.getX();
				MouseY = e.getY();
 
				repaint();
			}
		});
 
		try{
			tracker.waitForAll();
		}
		catch(Exception ie){}
		imgSize=iniSize=new Dimension(img.getWidth(this),img.getHeight(this));
	}
 
 
	public Dimension getPreferredSize(){
		return new Dimension(imgSize);
	}
 
	public void paint(Graphics g){
		super.paint(g);
		if(imgSize.width<=iniSize.width) {
			imgSize=iniSize; 
		}
 
		g.drawImage(this.img, (getWidth()-imgSize.width)/2+transX, (getHeight()-imgSize.height)/2+transY, imgSize.width,imgSize.height,this);
 
 
 
	}
	public void zoomIn(){
		int x=10*imgSize.width/100; 
		int y=10*imgSize.height/100;
		imgSize=new Dimension(imgSize.width+x,imgSize.height+y); 
		if(imgSize.width>iniSize.width){
			setSize(imgSize);
			getParent().doLayout();
		}
		repaint();
	}
	public void zoomOut(){
		int x=10*imgSize.width/100;
		int y=10*imgSize.height/100;
		imgSize=new Dimension(imgSize.width-x,imgSize.height-y);
		if(getWidth()>iniSize.width)
		{
			setSize(imgSize);
			getParent().doLayout();
 
		}
		repaint();
 
	}
 
	public int getZoom() {
		return zoom;
	}
 
	public void setZoom(int zoom) {
		this.zoom = zoom;
	}
 
 
 
}
Aprés cela , j'ai créer une class " myObjet " :

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
 
 
import java.awt.BorderLayout;
 
import javax.swing.ImageIcon;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
 
 
public class myObjet extends JPanel {
 
	JLabel lblName,lblAct,lblSeuil ;
	JPanel panelObjet;
 
	public myObjet(String NameObjet ,double activite  )
	{
		ImageIcon img = createImageIcon("images/Source.png");
		lblName = new JLabel(img);
		lblAct = new JLabel(String.valueOf(activite));
		panelObjet = new JPanel();
		panelObjet.setToolTipText(NameObjet);
		panelObjet.setLayout(new BorderLayout());
		panelObjet.add("North",lblName);
		panelObjet.add("South",lblAct);
	   add(panelObjet);
	   isOpaque();
 
 
	}
 
	public ImageIcon createImageIcon(String path) {
		java.net.URL imgURL = getClass().getResource(path);
		if (imgURL != null) {
			return new ImageIcon(imgURL);
		} else {
			JOptionPane.showMessageDialog(null, "Cette image n'existe pas : " + path, "Erreur", JOptionPane.ERROR_MESSAGE);
			//  System.err.println("L'image n'est pas dans : " + path);
			return null;
		}
	}
	public boolean isOpaque()
	{
		return true ; 
	}
}


Je voudrais maitenant ajouter cette objet sur la map ( je n'ai pas su le faire ) , j'ai essayé d'ajouter l'objet , en spécifiant les coordonnées mais comme , l'objet est dissocié de la map , l'objet disparait au moment ou je fait une action sur la map .

Pourriez m'aider a résolver ce probleme : ) ? .

Merci !.