2015-03-24 1 views
1

J'ai une application swing avec ce code, qui tente de redimensionner la police d'un composant:police Java/swing Redimensionner ne fonctionne pas sur toutes les plateformes

Font f = new Font(Font.SERIF,Font.PLAIN,16); 
component.setFont(f); 

Les charges de programme avec la police de 14 points, et j'inclure une composant qui permet à l'utilisateur de redimensionner le composant en police de 16 points comme ci-dessus. Quand je l'ai exécuté sur l'ordinateur, je l'ai compilé sur (Debian), cela fonctionne comme prévu, mais je l'ai testé sur un Mac et un ordinateur Windows et la fonction de redimensionnement des polices ne fonctionne pas du tout. Cependant, sur toutes les plateformes, la police est sérif. Des idées pour lesquelles cela se passe?

+1

La question est déjà demandé: peut-être [ce] (http://stackoverflow.com/a/11997304/1340559) pourrait vous aider. –

+0

Pas vraiment; la personne là-bas demandait exactement la même police sur toutes les plateformes. Ce qui me convient, mais je veux juste un moyen de redimensionner la police (c'est-à-dire que l'application charge avec une police de 14 points.) Lorsque je place la taille de la police à 16 sur debian en utilisant un composant police, la police redimensionne, mais quand je la mets à 16 sur Windows, rien ne se passe) – user156213

Répondre

1

Le délégué d'interface utilisateur par défaut du composant sur votre plate-forme peut préempter votre paramètre. A titre subsidiaire, envisager une des options suivantes:

  • Utilisez deriveFont() sur la police existante, illustrée here.

    component.getFont().deriveFont(16f) 
    
  • Utilisez un sizeVariant disponible, illustré here.

size variant

  • Utilisez un délégué de l'interface utilisateur personnalisée, illustrée here et here.

custom UI delegate

+0

Merci! Le premier exemple a parfaitement fonctionné – user156213