Как с помощью Java узнать, правильно ли установлен на компьютере определенный шрифт

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

  •  20-09-2019
  •  | 
  •  

Вопрос

У меня есть ноутбук под управлением Win Vista, когда я впервые купил его, некоторые китайские шрифты не отображались, я мог видеть только прямоугольники, но я немного поигрался с настройками управления, изменил некоторые свойства, и теперь он показывает китайский шрифты правильные, но я не помню, что я делал.

Теперь некоторые из моих программ отображают как английский, так и китайский язык, примерно так:«Enter | 输入» (китайский язык здесь также означает ввод), но если на компьютере пользователя не установлены должным образом китайские шрифты, он увидит что-то вроде этого:«Введите | [][]», мой вопрос:в Java, как определить, будут ли эти символы отображаться правильно на определенном компьютере, если нет, просто отобразите «Enter», если это так, покажите «Enter | 输入».

Откровенный

Это было полезно?

Решение

java.awt.GraphicsEnvironment.getAvailableFontFamilyNames() может предоставить вам список доступных шрифтов, установленных в текущей системе.Вы также можете использовать java.awt.GraphicsEnvironment.getAllFonts() получить java.awt.Font объекты.

Затем вы можете использовать java.awt.Font.canDisplay(int) чтобы проверить, может ли символ Юникода отображаться этим шрифтом (где int — целочисленное представление многобайтового символа).

Другие советы

Ленивая версия:

Arrays.asList(GraphicsEnvironment.getLocalGraphicsEnvironment().getAvailableFontFamilyNames()).contains(FONT_NAME)
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top