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)

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
 
    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
Code : Sélectionner tout - Visualiser dans une fenêtre à part
 SVGDocument svgDoc = f.createSVGDocument(path2.toString(),is2);
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
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.