IdentifiantMot de passe
Loading...
Mot de passe oubli� ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les r�ponses en temps r�el, voter pour les messages, poser vos propres questions et recevoir la newsletter

Interfaces Graphiques en Java Discussion :

Probleme changement police de caractere


Sujet :

Interfaces Graphiques en Java

Vue hybride

Message pr�c�dent Message pr�c�dent   Message suivant Message suivant
  1. #1
    Membre confirm�
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    67
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 67
    Par d�faut Probleme changement police de caractere
    Bonjour,

    je fais une applet et je voudrais changer le font dema police. J'ai implement� la m�thode suivante :

    public static void changePoliceCaractere(JLabel lbl) throws Exception
    {
    InputStream ttf;
    Font police;

    try {
    ttf = new FileInputStream("/font/e.ttf");
    police = Font.createFont(Font.TRUETYPE_FONT, ttf);
    }
    catch (Exception e) { //Une solution de rechange, au cas o�...
    police = new Font("gulim", Font.PLAIN, 60);
    }
    lbl.setFont(police);

    }

    Que j'appel dans le main comme ceci :

    changePoliceCaractere(Label1);



    Ca ne marche pas ... helpliz !

  2. #2
    Gfx
    Gfx est d�connect�
    Expert confirm�
    Avatar de Gfx
    Inscrit en
    Mai 2005
    Messages
    1 770
    D�tails du profil
    Informations personnelles :
    �ge : 43

    Informations forums :
    Inscription : Mai 2005
    Messages : 1 770
    Par d�faut
    Une police creee par createFont() possede une taille par defaut de 1. Change -la, ca devrait mieux aller.

  3. #3
    Membre confirm�
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    67
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 67
    Par d�faut
    MerciGfx pour ta reponse.

    J'ai essay� de changer la taille de la police :

    lbl.setFont(police.deriveFont(70));


    mais ca affiche toujours en tout petit ....

    Merci !

  4. #4
    Membre confirm�
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    67
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 67
    Par d�faut
    J'ai trouv�, merci.

    lbl.setFont(police.deriveFont(70f));
    |
    |

    manquait le 'f'


    +

  5. #5
    Gfx
    Gfx est d�connect�
    Expert confirm�
    Avatar de Gfx
    Inscrit en
    Mai 2005
    Messages
    1 770
    D�tails du profil
    Informations personnelles :
    �ge : 43

    Informations forums :
    Inscription : Mai 2005
    Messages : 1 770
    Par d�faut
    J'allais le dire, sans le f tu specifies le style (qui devrait etre BOLD, PLAIN, etc.) Evite aussi de charger la police a chaque fois avec createFont(). Tu devrais faire un cache des polices chargees de la sorte. Java 1.6 le fera a ta place.

  6. #6
    Membre confirm�
    Inscrit en
    Juillet 2002
    Messages
    194
    D�tails du profil
    Informations forums :
    Inscription : Juillet 2002
    Messages : 194
    Par d�faut
    Citation Envoy� par Gfx
    J'allais le dire, sans le f tu specifies le style (qui devrait etre BOLD, PLAIN, etc.) Evite aussi de charger la police a chaque fois avec createFont(). Tu devrais faire un cache des polices chargees de la sorte. Java 1.6 le fera a ta place.
    Qu'est ce que tu entends exactement par "cache des polices chargees" ?
    Uniquement pour les polices cr�er par createFont ou pour toutes les plolces utilis�es dans le programme ?

  7. #7
    Membre Expert
    Avatar de xavlours
    Inscrit en
    F�vrier 2004
    Messages
    1 832
    D�tails du profil
    Informations forums :
    Inscription : F�vrier 2004
    Messages : 1 832
    Par d�faut
    Ce qui se passe avec ta m�thode, c'est que le fichier de police sera lu � chaque appel. Tu peux faire quelque chose d'� peine diff�rent :
    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
    private static Font police = null;
    // ceci est ton cache qui contient les polices chargées
    // bon ici y'en a qu'une seule mais c'est pareil
     
    private static void initFont() {
    //méthode qui charge la police dans le cache
      InputStream ttf;
      try {
        ttf = new FileInputStream("/font/e.ttf");
        police = Font.createFont(Font.TRUETYPE_FONT, ttf);
      }
      catch (Exception e) {
        police = new Font("gulim", Font.PLAIN, 60);
      } 
    }
     
    public static void changePoliceCaractere(JLabel lbl) {
      if(police == null)
        initFont();
     
      lbl.setFont(police.deriveFont(70f));
    }
    Un cache part du m�me principe, sauf qu'il y a un gros paquet de polices class�es dans une Map, et qu'on y acc�de par leur nom ou par des attributs.

    [EDIT] ajout de commentaires dans le code
    "Le bon ni le mauvais ne me feraient de peine si si si je savais que j'en aurais l'�trenne." B.V.
    Non au langage SMS ! Je ne r�pondrai pas aux questions techniques par MP.
    Eclipse : News, FAQ, Cours, Livres, Blogs.Et moi.

  8. #8
    Membre confirm�
    Inscrit en
    Juillet 2002
    Messages
    194
    D�tails du profil
    Informations forums :
    Inscription : Juillet 2002
    Messages : 194
    Par d�faut
    La question que je pose en fait c'est la suivante :
    Dans mon programme j'ai tout plein de composants (plus d'un millier) auxquels j'affecte � presque tous une police par la m�thode setFont(new Font(...)). Et pour beaucoup de ces composants j'utilise la m�me police, en gros je n'utilise que 5 ou 6 polices diff�rentes.
    Je voulais donc savoir s'il �tait judicieux de cr�er justement un cache de police qui me permetrais d'�viter faire des new Font() pour chacun et mes composants (j'imagine que la r�ponse est oui, mais il y a peut etre des effets de bords auxquels je n'aurais pas pens� ?) et surtout est ce que le cache de police dont parle Gfx pour java 1.6 va fonctionner pour ce genre d'utilisation ou uniquement avec les appels � createFont.

  9. #9
    Membre confirm�
    Inscrit en
    Juillet 2002
    Messages
    194
    D�tails du profil
    Informations forums :
    Inscription : Juillet 2002
    Messages : 194
    Par d�faut
    et ce cache existe-t-il deja dans la version de java 1.6 qui est telechargeable chez SUN ?

  10. #10
    Gfx
    Gfx est d�connect�
    Expert confirm�
    Avatar de Gfx
    Inscrit en
    Mai 2005
    Messages
    1 770
    D�tails du profil
    Informations personnelles :
    �ge : 43

    Informations forums :
    Inscription : Mai 2005
    Messages : 1 770
    Par d�faut
    Oui.

  11. #11
    Membre confirm�
    Inscrit en
    Juillet 2002
    Messages
    194
    D�tails du profil
    Informations forums :
    Inscription : Juillet 2002
    Messages : 194
    Par d�faut
    Ok, merci.

    Et une id�e pour ma question ?

    Citation Envoy� par Guybrush
    La question que je pose en fait c'est la suivante :
    Dans mon programme j'ai tout plein de composants (plus d'un millier) auxquels j'affecte � presque tous une police par la m�thode setFont(new Font(...)). Et pour beaucoup de ces composants j'utilise la m�me police, en gros je n'utilise que 5 ou 6 polices diff�rentes.
    Je voulais donc savoir s'il �tait judicieux de cr�er justement un cache de police qui me permetrais d'�viter faire des new Font() pour chacun et mes composants (j'imagine que la r�ponse est oui, mais il y a peut etre des effets de bords auxquels je n'aurais pas pens� ?) et surtout est ce que le cache de police dont parle Gfx pour java 1.6 va fonctionner pour ce genre d'utilisation ou uniquement avec les appels � createFont.

  12. #12
    Membre Expert
    Avatar de xavlours
    Inscrit en
    F�vrier 2004
    Messages
    1 832
    D�tails du profil
    Informations forums :
    Inscription : F�vrier 2004
    Messages : 1 832
    Par d�faut
    Je crois que tu peux sans probl�me utiliser le meme objet Font pour tous tes composants. J'ai pas le code source sous la main, mais les LookAndFeel fonctionnent exactement comme �a, d'apr�s mes souvenirs.
    "Le bon ni le mauvais ne me feraient de peine si si si je savais que j'en aurais l'�trenne." B.V.
    Non au langage SMS ! Je ne r�pondrai pas aux questions techniques par MP.
    Eclipse : News, FAQ, Cours, Livres, Blogs.Et moi.

Discussions similaires

  1. R�ponses: 7
    Dernier message: 20/02/2008, 11h15
  2. Problème de police de caractères
    Par Matthieu Brucher dans le forum Applications et environnements graphiques
    R�ponses: 2
    Dernier message: 24/02/2006, 10h29
  3. [html] probleme de police
    Par aldorado_one dans le forum Balisage (X)HTML et validation W3C
    R�ponses: 6
    Dernier message: 15/05/2005, 13h34
  4. Probleme avec remplacement de caractere
    Par genzo93 dans le forum ASP
    R�ponses: 9
    Dernier message: 18/01/2005, 10h51
  5. [TP]Pb de police de caractère...
    Par jipers dans le forum Turbo Pascal
    R�ponses: 11
    Dernier message: 01/06/2003, 20h49

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo