Bonjour,

j'aimerai remplacer une partie de mon code pour utiliser des dessins vectoriel SVG au lieu d'image(jpeg,png,gif)
Malgrès mes recherche sur les svg... je n'arrive pas à savoir comment lire un svg
pouvez vous m'aider? svp

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
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
 
  /**
   * Reads image from <code>imageContent</code>.
   * Caution : this method must be thread safe because it's called from image loader executor. 
   */
  private BufferedImage readModel(Content modelContent) throws IOException {
	    try {
	        // Display a waiting image while loading
	        if (waitImage == null) {
	          waitImage = ImageIO.read(BackgroundImageWizardStepsPanel.class.
	              getResource("resources/wait.png"));
	        }
	        updatePreviewComponentsModel(waitImage);
 
	        // Read the image content
	        InputStream contentStream = modelContent.openStream();
	        BufferedImage image = ImageIO.read(contentStream);
	        contentStream.close();
 
	        if (image != null) {
	          updatePreviewComponentsModel(image);
	          return image;
	        } else {
	          throw new IOException();
	        }
	      } catch (IOException ex) {
	        updatePreviewComponentsModel(null);
	        throw ex;
	      } 
  }
 
 
  /**
   * Updates the <code>image</code> displayed by preview components.  
   */
  private void updatePreviewComponentsModel(final BufferedImage model) {
	    modelPreviewComponent.setModel(model);
	    attributesPreviewComponent.setModel(model);
	    iconPreviewComponent.setModel(model);
  }
 
  /**
   * Sets the texts of label and button of model panel with change texts. 
   */
  private void setModelChangeTexts() {
    this.modelChoiceOrChangeLabel.setText(this.resource.getString("modelChangeLabel.text")); 
    this.modelChoiceOrChangeButton.setText(this.resource.getString("modelChangeButton.text"));
    if (!System.getProperty("os.name").startsWith("Mac OS X")) {
      this.modelChoiceOrChangeButton.setMnemonic(
          KeyStroke.getKeyStroke(this.resource.getString("modelChangeButton.mnemonic")).getKeyCode());
    }
  }
 
  /**
   * Sets the texts of label and button of model panel with choice texts. 
   */
  private void setModelChoiceTexts() {
    this.modelChoiceOrChangeLabel.setText(this.resource.getString("modelChoiceLabel.text")); 
    this.modelChoiceOrChangeButton.setText(this.resource.getString("modelChoiceButton.text"));
    if (!System.getProperty("os.name").startsWith("Mac OS X")) {
      this.modelChoiceOrChangeButton.setMnemonic(
          KeyStroke.getKeyStroke(this.resource.getString("modelChoiceButton.mnemonic")).getKeyCode());
    }
  }
 
  /**
   * Returns a model content choosen for a file chooser dialog.
   */
  private Content showModelChoiceDialog(ContentManager contentManager) {
    String modelName = contentManager.showOpenDialog( 
        this.resource.getString("modelChoiceDialog.title"), 
        ContentManager.ContentType.MODEL);
 
    if (modelName != null) {
      try {
        Content modelContent = contentManager.getContent(modelName);
        // Store the default name for the chosen content
        setModelName(contentManager, modelContent, modelName);
        return modelContent;
      } catch (RecorderException ex) {
        JOptionPane.showMessageDialog(this, 
            String.format(this.resource.getString("modelChoiceError"), modelName));
      }
    }
    return null;
  }
 
  /**
   * Returns the default name for model <code>content</code>.
   */
  private String getModelName(Content content) {
    String name = this.contentNames.get(content);
    if (name != null) {
      return name;
    } else {
      return "";
    }    
  }
 
  /**
   * Sets the name for model read from <code>modelName</code>. 
   */
  private void setModelName(ContentManager contentManager, 
                            Content modelContent, 
                            String modelName) {
    this.contentNames.put(modelContent, contentManager.getPresentationName(
        modelName, ContentManager.ContentType.MODEL));
  }
 
  /**
   * Returns the icon content of the piece.
   */
  public Content getIcon() {
    try {
      File tempFile = File.createTempFile("urlContent", "tmp");
      tempFile.deleteOnExit();
      ImageIO.write(this.iconPreviewComponent.getIconImage(), "png", tempFile);
      return new TemporaryURLContent(tempFile.toURI().toURL());
    } catch (IOException ex) {
      try {
        return new URLContent(new URL("file:/dummyElectricalManagerContent"));
      } catch (MalformedURLException ex1) {
        return null;
      }
    }
  }
 
 
  /**
   * Super class of 3D preview component for model. 
   */
  private static class ModelPreviewComponent extends JComponent {
	private BufferedImage model;
 
    @Override
    public Dimension getPreferredSize() {
      return new Dimension(200, 200);
    }
 
    @Override
    protected void paintComponent(Graphics g) {
      paintImage(g, null);
    }
 
    /**
     * Paints the image with a given <code>composite</code>. 
     * Image is scaled to fill width of the component. 
     */
    protected void paintImage(Graphics g, AlphaComposite composite) {
      if (model != null) {
        Graphics2D g2D = (Graphics2D)g;
        g2D.setRenderingHint(RenderingHints.KEY_RENDERING, 
            RenderingHints.VALUE_RENDER_QUALITY);
        AffineTransform oldTransform = g2D.getTransform();
        Composite oldComposite = g2D.getComposite();
        Point translation = getModelTranslation();
        g2D.translate(translation.x, translation.y);
        float scale = getModelScale();
        g2D.scale(scale, scale);    
 
        if (composite != null) {
          g2D.setComposite(composite);
        }
        // Draw image with composite
        g2D.drawImage(this.model, 0, 0, this);
        g2D.setComposite(oldComposite);
        g2D.setTransform(oldTransform);
      }
    }
 
    /**
     * Sets the image drawn by this component.
     */
    public void setModel(BufferedImage model) {
      this.model = model;
      this.repaint();
    }
 
    /**
     * Returns the image drawn by this component.
     */
    public BufferedImage getModel() {
      return this.model;
    }
 
    /**
     * Returns the scale used to draw the image of this component.
     */
    protected float getModelScale() {
      if (model != null) {
        return Math.min(1, Math.min((float)getWidth() / model.getWidth(), 
            (float)getHeight() / model.getHeight()));
      } else {
        return 1;
      }
    }
 
    /**
     * Returns the origin point where the image of this component is drawn.
     */
    protected Point getModelTranslation() {
      float scale = getModelScale();
      return new Point(Math.round((getWidth() - model.getWidth() * scale) / 2),
          Math.round((getHeight() - model.getHeight() * scale) / 2));
    }
 
    /**
     * Returns <code>true</code> if point at (<code>x</code>, <code>y</code>)
     * is in the image displayed by this component.
     */
    protected boolean isPointInModel(int x, int y) {
      Point translation = getModelTranslation();
      float scale = getModelScale();
      return x > translation.x && x < translation.x + Math.round(getModel().getWidth() * scale)
          && y > translation.y && y < translation.y + Math.round(getModel().getHeight() * scale);
    }
 
  }
 
  /**
   * Preview component for model attributes. 
   */
  private static class AttributesPreviewComponent extends ModelPreviewComponent {
	private ImportedEquipmentWizardController controller;
 
    public AttributesPreviewComponent(ImportedEquipmentWizardController controller) {
    	this.controller = controller;
    }
  }
 
 
  /**
   * Preview component for model icon. 
   */
  private static class IconPreviewComponent extends ModelPreviewComponent {
    private ImportedEquipmentWizardController controller;
 
    public IconPreviewComponent(ImportedEquipmentWizardController controller) {
    	this.controller = controller;
    }
 
    @Override
    public Dimension getPreferredSize() {
      return new Dimension(128, 128);
    }
 
    /**
     * Returns the icon image matching the displayed view.  
     */
    public BufferedImage getIconImage() {
 
        BufferedImage iconImage = getModel();
 
        return iconImage;
      }
    }