Partage
  • Partager sur Facebook
  • Partager sur Twitter

fonction drawString

position d'une chaine de caracteres au milieu

    28 février 2021 à 22:52:18

    bonjour je veux juste savoir si possible l'explication de les deux derniers parametres de la fonction(calacul mathematiques) drawString et merci d'avance
    import java.io.IOException; 
    import javax.imageio.ImageIO;
    import javax.swing.JButton;
      
    public class Bouton extends JButton implements MouseListener{
      private String name;
      private Image img;
    
      public Bouton(String str){
        super(str);
        this.name = str;
        try {
          img = ImageIO.read(new File("images/k2.jpg"));
        } catch (IOException e) {
          e.printStackTrace();
        }
      this.addMouseListener(this);
      }
    
      public void paintComponent(Graphics g){
        Graphics2D g2d = (Graphics2D)g;
        GradientPaint gp = new GradientPaint(0, 0, Color.blue, 0, 20, Color.cyan, true);
        g2d.setPaint(gp);
        g2d.drawImage(img, 0, 0, this.getWidth(), this.getHeight(), this);
        g2d.setColor(Color.black);
        g2d.drawString(this.name, this.getWidth() / 2 - (this.getWidth() / 2 /4), (this.getHeight() / 2) + 5);
    • Partager sur Facebook
    • Partager sur Twitter
      2 mars 2021 à 14:18:22

      c'est juste un calcul pour le positionnement de l'affichage de la chaine, à x = 3/8 de la largeur du bouton (1/2-(1/2)/4) et y =hauteur du bouton/2 + 5

      ça a dû être fait "empiriquement" pour positionner le texte par rapport à l'image dessiné avec le drawImage ligne 24

      Edit: correction du calcul de x

      -
      Edité par umfred 2 mars 2021 à 19:03:20

      • Partager sur Facebook
      • Partager sur Twitter
        2 mars 2021 à 18:13:06

        oui je veux juste savoir si possible par exemple pourquoi on divise sur 4 et on rajoute 5

        • Partager sur Facebook
        • Partager sur Twitter
          2 mars 2021 à 19:17:20

          comme je l'ai dit, c'est pour ajuster le texte par rapport à l'image.

          En fait, tu peux mettre n'importe quelles coordonnées, tout dépend où tu veux placer ton texte. 

          (d'ailleurs je me suis trompé dans mon calcul pour le x, c'est 3/8 de witdh pas 7/8 :-° )

          Si on veut le centrer, (surtout si c'est un texte qui est amené à être modifier) plutôt qu'utiliser des "nombres magiques", il faudrait passer par FontMetrics et ses fonctions getStringWidth(text) et getHeight() 

          • Partager sur Facebook
          • Partager sur Twitter

          fonction drawString

          × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
          × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
          • Editeur
          • Markdown