2010-06-14 11 views
2

J'écris une petite application en swing. J'utilise Ratpoison en tant que mon gestionnaire de fenêtres (avec wmname LG3D) et Netbeans en tant qu'IDE. Mes polices d'application démarrées à partir de KDE ou directement à partir de Netbeans semblent correctes. Commencé à partir ratpoison ils ressemble à ceci:Polices balançoires laides sous ratpoison

Screenshot http://img195.imageshack.us/img195/8079/swingfontsratpoison.png cliquez pour agrandir

+0

Lien ajouté. Voir aussi http://java.sun.com/javase/6/docs/technotes/guides/intl/fontconfig.html – trashgod

Répondre

0

KDE est probablement ajouter plus de polices au système lors du démarrage.

Exécuter ceci sur KDE et dans le ratpoison:

fc-list -v | grep "file:\|fullname:\|^$" 

et comparer la liste des polices pour voir ce qui manque.

Si un répertoire est manquant, ajoutez-le dans /etc/fonts/fonts.conf, dans une nouvelle entrée.

Si manquant certaines polices, vous pouvez copier ensuite les .fonts ~/(en supposant que vous avez ce répertoire configure dans fonts.conf)

si toutes les polices sont les mêmes, essayez de déplacer tous les configs dans /etc/fonts/conf.d dans un répertoire temporaire et exécutez

fc-cache -f 

et de tester.

si mieux, commencez à ajouter une config supplémentaire, exécutez à nouveau le fc-cache -f, redémarrez l'application java et testez.

répétez jusqu'à ce que vous trouviez la config qui casse les polices java. À la fin, vous devriez avoir toutes les configs moins celle qui brise le java.

Habituellement c'est une certaine config qui définit une police comme préférée, que java utilisera aveuglément, sur de meilleures polices.

0

En fait, vous pouvez utiliser n'importe quelle police système dans Swing.

Facilement, juste en ajoutant une phrase: yourComponent.setFont (nouvelle police ("Tahoma", Font.BOLD | Font.ITALIC, 16));

Ou vous pouvez modifier les paramètres globaux : UIManager.put ("label.font", une nouvelle police ("Tahoma", Font.BOLD, 16));

Les « clés » de la méthode de vente sont généralement des chaînes indiquant ce que vous voulez changer comme: label.font, button.font, label.color, textfield.font, etc. Dans petits cas.

Et ne pas oublier d'importer java.awt.Font ET/OU javax.swing.UIManager au début!