Comment Java calcule-t-il l'espacement des lignes de police? (Calculer l'espacement entre 2 lignes dans les temps nouveaux romains)

StackOverflow https://stackoverflow.com/questions/19845263

  •  29-07-2022
  •  | 
  •  

Question

Je crée donc une interface extrêmement variable où même la police doit presque être variable (croyez-moi, j'en ai besoin pour que cela fonctionne sur chaque résolution) mais évidemment, il y a plusieurs lignes si du texte, où il y a de l'espace entre le lignes séparées.

Après quelques essais, j'ai découvert que l'espace entre une police n'est pas statique (par exemple, 2 pixels), il doit donc être un pourcentage de la police complète (par exemple, le pourcentage est de 25% et la taille de la police est de 40 pixels , que l'espacement est de 10 pixels) ou une sorte de formule.

Après quelques travaux de recherche, je n'ai rien trouvé sur l'espacement d'une police, alors j'ai pensé que c'était spécifique à Java. J'en doute cependant. Puisque Java n'a pas de méthode où vous pouvez changer cet espacement (pour autant que je puisse trouver).

Ma question est donc: existe-t-il un moyen de changer ou d'apprendre à connaître l'espacement entre 2 lignes de texte romain nouveau?

Le plus gros problème est que j'ai besoin de le savoir pour créer la police ... au cas où il fallait la formule: FonTSize = (MyTextArea.GetHeight () - ([Fontascence] + [FontDescent]) * 21) / 22

PS J'utilise une jTextArea et je préfère ne pas utiliser un jetorpane

Était-ce utile?

La solution

C'est peut-être ce que vous recherchez?

myTextArea.getFontMetrics().getHeight()

getFontMetrics est un Méthode sur JComponent ce qui vous donne un FontMetrics objet qui a un getHeight() méthode.

Autres conseils

L'espacement entre les lignes dépend de la question de savoir si la ligne de texte a des descendants ou non.

Lisez l'introduction au Classe Fontmetrics Pour tout ce que vous n'avez jamais voulu savoir sur l'ascension et la descente.

Il semble qu'avec mon problème spécifique (où je dois créer une police et j'ai besoin de cette même police pour pouvoir le créer), les seules options sont d'utiliser un JetorPane et d'utiliser CSS pour définir l'espacement sur une valeur spécifique que je peut utiliser dans ma formule ou pour utiliser l'algèbre pour obtenir la bonne valeur.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top