Bonjour à tous

Je galère beaucoup avec le Graphics2D.
Mon nouveau problème est sur le calcul de la taille en pixel d'une chaine de caractère.

pour le calcul de la taille de ma chaine , j'utilise le code suivant:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
 
    Graphics2D g = (Graphics2D)graph.getGraphics();
    g.setFont(f);
    FontMetrics metrics = g.getFontMetrics();
    int width = metrics.stringWidth(value);
    int height = metrics.getHeight()+metrics.getMaxDescent();
Cela fonctionne très bien tant que je ne touche pas au scaling

J'avais besoin d'implanter un scaling pour faire du zoom sur mon graphique.
Lorsque je change la valeur de zoom par la fonction

Code : Sélectionner tout - Visualiser dans une fenêtre à part
g2.scale(zoomFactor.zoomFactor());
L'affichage me tronque une partie de ma chaine. c'est comme si le scaling intervenait sur le calcul de la taille de la chaine

Si quelqu'un a une idée, je suis preneur.

ci joint le code complet de ma fonctionne paint

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
   public void paint(Graphics g) {
      TextGraphCell cell = (TextGraphCell) view.getCell();
      Rectangle2D bounds = GraphConstants.getBounds(cell.getAttributes());
      Graphics2D g2 = (Graphics2D) g;
 
      g.setColor(new Color(0, 0, 0));
      g2.setPaint(Color.black);
      g2.setFont(GraphConstants.getFont(cell.getAttributes()));
      FontMetrics metrics = g.getFontMetrics();
      int descent = metrics.getMaxDescent();
      g2.drawString(cell.getStringValue(), 0, (int) bounds.getHeight()-descent);
 
   }
Merci d'avance
Cordialement