[SVG] probleme dessin d'images SVG avec Batik

[SVG] probleme dessin d'images SVG avec Batik - Java - Programmation

Marsh Posté le 10-05-2006 à 11:45:06    

Bonjour a tous,
j'ai un probleme avec la bibliotheque Batik pour manipuler des images SVG (images vectorielles).
J'ai un panel qui dessine des éléments. Chaque élément contient une image SVG (JSVGCanvas). J'ai ajouté des methodes pour pouvoir redimensionner l'image avec la souris mais malheureusement le JSVGCanvas ne se met pas tout le temps a jour (parfois il n'y a qu'une partie de l'image qui se dessine par exemple). Je voulais savoir si quelqu'un a deja été confronté à se genre de problème et si oui comment faire ^^
Voici des extraits de mon code au besoin :
 

Code :
  1. public class Materiel{
  2.      protected JSVGCanvas svgCanvas;
  3.      // ...
  4.      public Materiel(String nom, int x, int y, int l, int h) {
  5.              // ...
  6.              // initialisation de l'image SVG
  7.              svgCanvas = new JSVGCanvas();
  8.              File f = new File("aiv/images/pc_g.svg" );
  9.              try {
  10.                    svgCanvas.setURI(f.toURL().toString());
  11.               } catch (IOException ex) {
  12.                    ex.printStackTrace();
  13.               }
  14.               svgCanvas.setBounds(getX(), getY(), getWidth(), getHeight());
  15.      }
  16.      public void dessiner(Graphics g){
  17.             // ...
  18.             int w = (int)(getWidth()*Donnees.zoom); // la variable Donnees.zoom est un indice representant un zoom sur l'objet
  19.             int h = (int)(getHeight()*Donnees.zoom);
  20.             // ...
  21.             svgCanvas.setSize(w, h);
  22.             svgCanvas.setBackground(new Color(0, 0, 0, 0)); // definit le fond transparent
  23.              svgCanvas.paintComponent(g);
  24.      }
  25. }


J'ai vu qu'il existait l'interface UpdateManagerListener dans la bibliotheque Batik mais je n'ai pas tres bien compris comment ca marchait ...

Reply

Marsh Posté le 10-05-2006 à 11:45:06   

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed