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 :
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
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; } }
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 !.
Partager