Bonjour a tous, voilà je dois developper ds le cadre de mon stage une interface graphique qui sera utiliser sur plusieurs plateforme (PC/Mac, PocketPC, Grande Surface). Pour éviter de refaire les graphismes pr les différentes résolutions possible, j'utilise des images vectoriel au format SVG. Sur Pc j'arrive à charger mes images sans soucis, par contre sur Pocket j'ai un big probleme (j'utilise la Mysaifu JVM v0.3.3)
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
|
JSVGCanvas svgCanevas;
String svg = "/svg/asf-logo.svg";
public batik() {
initComponents();
setTitle ("Batik-Pocket");
this.setSize(240, 320);
svgCanevas = new JSVGCanvas ();
jPanel1.setSize(80,80);
svgCanevas.setSize(80,80);
jPanel1.add(svgCanevas);
try {
URL path = getClass().getResource(svg);
URI path2 = path.toURI();
System.out.println("Parser");
String parser = XMLResourceDescriptor.getXMLParserClassName();
System.out.println("factory");
SAXSVGDocumentFactory f = new SAXSVGDocumentFactory(parser);
System.out.println("InputS");
InputStream is2 = getClass().getResourceAsStream(svg);
System.out.println("create docsvg");
SVGDocument svgDoc = f.createSVGDocument(path2.toString(),is2);
System.out.println("load svgdoc");
svgCanevas.setSVGDocument(svgDoc);
} catch (IOException e) {
e.printStackTrace();
} catch (URISyntaxException e ) {
e.printStackTrace();
}
} |
Sur pc, ca marche, je vois mon SVG dans le Jpanel, mais sur pocket avec le meme code (celui de dessus) j'ai une erreur au niveau de la ligne
SVGDocument svgDoc = f.createSVGDocument(path2.toString(),is2);
1 2 3 4
|
Root Element NameSpace does not match :
Required : <a href="http://www.w3.org/2000/svg" target="_blank">http://www.w3.org/2000/svg</a>
Found : Null |
Je sais que le SVG utilise la techno XML mais je suis plus que novice dans ce domaine.
Des idées ? en tout cas merci d'avance.
PS : Autre chose que je n'explique pas, dans un package "images", j'ai des images au format jpg.
// C'est un exemple pr illustrer mon autre probleme
J'ai 2 JButtons aux quels je veux mettre une image dessus
donc je fais :
1 2 3 4
|
jButton1.setIcon (new ImageIcon(getClass().getResources("/images/ima1.jpg")));
jButton2.setIcon (new ImageIcon(getClass().getResources("/images/ima2.jpg").toString())); |
les methodes me renvoi le meme chemin, mais ya que la premiere ligne qui me fais afficher l'image.
la premiere ligne renvoie une URL, et l'autre une String. mais les 2 sont semblable, ca marche dans le 1er cas, mais pas le 2nd...

Merci pr votre aide.
Partager