Como o Java calcula o espaçamento da linha de fonte? (Calcule o espaçamento entre 2 linhas no Times New Roman)

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

  •  29-07-2022
  •  | 
  •  

Pergunta

Então, estou criando uma interface extremamente variável, onde até a fonte quase precisa ser variável (confie em mim, eu preciso dela para que funcione em todas as resoluções), mas obviamente, existem várias linhas se o texto, onde há espaço entre o linhas separadas.

Depois de alguns experimentando, descobri que o espaço entre uma fonte não é estático (por exemplo, 2 pixels), por isso deve ser uma porcentagem da fonte completa (por exemplo, a porcentagem é de 25% e o tamanho da fonte é de 40 pixels , do que o espaçamento é de 10 pixels) ou algum tipo de fórmula.

Depois de algum trabalho de pesquisa, não consegui encontrar nada sobre o espaçamento de uma fonte, então pensei que era específico do Java. Duvido isso, no entanto. Como o Java não tem um método em que você pode alterar esse espaçamento (tanto quanto eu pude encontrar).

Então, minha pergunta é: existe alguma maneira de mudar ou conhecer o espaçamento entre 2 linhas de vezes o novo texto romano?

O maior problema é que preciso saber disso para criar a fonte ... Caso necessário, a fórmula: fontsize = (myTextarea.getHeight ()-([Fontascend]+[FontDescent])*21)/22

PS Estou usando um jtextarea e prefiro não usar um Jeditorpane

Foi útil?

Solução

Talvez seja isso que você procura?

myTextArea.getFontMetrics().getHeight()

getFontMetrics é um Método no JComponent que te dá um FontMetrics objeto que tem um getHeight() método.

Outras dicas

O espaçamento entre as linhas depende se a linha de texto tem descendentes ou não.

Leia a introdução ao Classe FontMetrics Para tudo que você nunca quis saber sobre ascensão e descida.

Parece que, com meu problema específico (onde tenho que criar uma fonte e preciso da mesma fonte para poder criá -la), as únicas opções são usar um Jeditorpan e usar CSS para definir o espaçamento como um valor específico que eu Pode usar na minha fórmula ou usar álgebra para obter o valor certo.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top