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.
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
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.