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
|
public class ZoneSVG extends JSVGCanvas implements MouseListener,MouseMotionListener,MouseWheelListener,WindowListener,KeyListener
{
double tx;
double ty;
zonedessin zd; //JPanel contenant le JSVGCanvas
double rapechelle;
AffineTransform t;
public ZoneSVG(zonedessin zd)
{
this.setSize(800, 700);
this.zd=zd;
Color bg=new Color((float)1.0,(float)1.0,(float)1.0,(float)0.0);
this.setBackground(bg);
t=new AffineTransform();
}
/**Cette fonction est la fonction de dessin sur linterface.
*/
public void paintComponent (Graphics g)
{
Graphics2D g2=(Graphics2D)g;
super.paintComponent(g2);
}
/**Cette fonction permet l'initialisation du canvas SVG.
* Elle permet l'ajout des listener sur le JSVGCanvas.
*/
public void initialisation()
{
setPreferredSize(new Dimension(800, 700));
rapechelle=1.0;
this.setBounds(0,0,800,700);
addKeyListener(this);
addMouseMotionListener(new MouseMotionAdapter()
{
public void mouseDragged(MouseEvent e)
{
mouvementsouris(e);
}
);
addMouseWheelListener(new MouseWheelListener()
{
public void mouseWheelMoved(MouseWheelEvent e)
{
mouvementmolette(e);
}
}
);
}
/**Cette fonction gère ce qui se passe lorsque la souris est déplacée tout en maintenant un bouton enfoncé.*/
public void mouvementsouris(MouseEvent e)
{
//calcul de dxdepensemble et dydepensemble
tx=dxdepensemblesvg;
ty=dydepensemblesvg;
t.translate(tx,ty);
setRenderingTransform(t);
}
}
/**Cette fonction gère ce qui se passe lors dun mouvement molette.*/
public void mouvementmolette(MouseWheelEvent e)
{
int mvt;
mvt=e.getWheelRotation();
if(mvt<0)
{
rapechelle=1.2;
t.scale(rapechelle, rapechelle);
}
if(mvt>0)
{
rapechelle=(1/1.2);
t.scale(rapechelle,rapechelle);
}
setRenderingTransform(t);
}
} |
Partager