Profil de Feeling路漫漫其修远兮,吾将上下而求索PhotosBlogListes Outils Aide

Blog


18/04/2006

SWT中获取字符宽度的函数

以前一直认为是控制字符串宽度是 org.eclipse.swt.graphics.FontMetrics 的getAverageCharWidth()方法,今天才发现是错误的,应该是 org.eclipse.swt.graphics.GCgetAdvanceWidth(char ch)方法。

getAdvanceWidth
public int getAdvanceWidth(char ch)
Returns the advance width of the specified character in the font which is currently selected into the receiver.

The advance width is defined as the horizontal distance the cursor should move after printing the character in the selected font.

Parameters:
ch - the character to measure
Returns:
the distance in the x direction to move past the character before painting the next
Throws:
SWTException -
  • ERROR_GRAPHIC_DISPOSED - if the receiver has been disposed

  public static int getStringWidth(String string,Control control){

      int width = 0;
      GC gc = new GC(control);
      for(int i=0;i<string.length();i++){
            char c = string.charAt(i);
            width += gc.getAdvanceWidth(c);

      }

      gc.dispose();

      return width;
  }

Commentaires

Veuillez patienter...
Le commentaire entré est trop long. Raccourcissez-le.
Vous n'avez rien entré. Réessayez.
Il est actuellement impossible d'ajouter votre commentaire. Réessayez plus tard.
Pour ajouter un commentaire, tu dois avoir l'autorisation de tes parents. Demander l'autorisation
Tes parents ont désactivé les commentaires.
Il est actuellement impossible de supprimer votre commentaire. Réessayez plus tard.
Vous avez dépassé le nombre maximal de commentaires qu'il est possible d'envoyer le même jour. Réessayez dans 24 heures.
Votre compte a pu laisser les commentaires désactivés parce que nos systèmes indiquent que vous risquez d'arroser d'autres utilisateurs de messages. Si vous pensez que votre compte a été désactivé par erreur, contactez l'assistance en ligne de Windows Live.
Effectuez la vérification de sécurité ci-dessous pour finaliser l'envoi de votre commentaire.
Les caractères entrés pour la vérification de sécurité doivent correspondre à ceux de l'image ou du fichier audio.

Pour ajouter un commentaire, connectez-vous avec votre identifiant Windows Live ID (si vous utilisez Messenger ou Xbox LIVE, vous avez un identifiant Windows Live ID). Connectez-vous


Vous n'avez pas d'identifiant Windows Live ID ? Inscrivez-vous

Rétroliens

L'URL de rétrolien de ce billet est :
http://cnfree2000.spaces.live.com/blog/cns!6201144F025F9D77!707.trak
Blogs Web qui font référence à ce billet
  • Aucune