Como encontrar, com Java, se uma determinada fonte for instalada corretamente em uma máquina

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

  •  20-09-2019
  •  | 
  •  

Pergunta

Eu tenho um notebook para PC Running Win Vista, quando o comprei pela primeira vez, certas fontes chinesas não aparecem, eu só podia ver retângulos, mas brinquei com a configuração de controle por um tempo, mudei algumas propriedades e agora mostra chinês Fontes corretamente, mas não me lembro do que fiz.

Agora, alguns dos meus programas exibem inglês e chinês, algo assim: "Entre | 输入" (os chineses aqui também significam entrar), mas se um usuário não tiver fontes chinesas instaladas corretamente em sua máquina, ele verá algo como algo como isto: "enter | [] [], minha pergunta é: em java como detectar se esses personagens aparecerão corretamente em uma determinada máquina, se não, basta exibir "Enter", se for, mostre "Enter | 输入".

Frank

Foi útil?

Solução

java.awt.GraphicsEnvironment.getAvailableFontFamilyNames() Pode fornecer uma lista das fontes disponíveis instaladas no sistema atual. Você também pode usar java.awt.GraphicsEnvironment.getAllFonts() para obter java.awt.Font objetos.

Então, você pode usar java.awt.Font.canDisplay(int) Para verificar se um caractere unicode pode ser exibido nessa fonte (onde o int é a representação inteira do caractere multibyte).

Outras dicas

Versão preguiçosa:

Arrays.asList(GraphicsEnvironment.getLocalGraphicsEnvironment().getAvailableFontFamilyNames()).contains(FONT_NAME)
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top