كيف تجد ، مع Java ، إذا تم تثبيت خط معين بشكل صحيح على جهاز
سؤال
لديّ دفتر كمبيوتر محمول يعمل على وين وين فيستا ، عندما اشتريته لأول مرة ، لن تظهر بعض الخطوط الصينية ، لا يمكنني رؤية المستطيلات إلا ، لكنني لعبت مع إعداد التحكم لفترة من الوقت ، وغيرت بعض الخصائص ، والآن تظهر الصينية الخطوط بشكل صحيح ، لكنني لا أتذكر ما فعلته.
الآن يعرض بعض برامجي كل من اللغة الإنجليزية والصينية ، شيء من هذا القبيل: "أدخل | 输入" (يعني الصينيين هنا أيضًا الدخول) ، ولكن إذا لم يكن لدى المستخدم خطوط صينية مثبتة بشكل صحيح على جهازه هذا: "أدخل | [] [] ، سؤالي هو: في Java كيفية اكتشاف ما إذا كانت هذه الأحرف ستظهر بشكل صحيح على جهاز معين ، إن لم يكن ، فقط عرض "Enter" ، إذا كان ، إظهار "Enter | 输入".
صريح
المحلول
java.awt.GraphicsEnvironment.getAvailableFontFamilyNames()
يمكن أن تعطيك قائمة بالخطوط المتاحة المثبتة على النظام الحالي. يمكنك أيضا استخدام java.awt.GraphicsEnvironment.getAllFonts()
لتأخذ، لتمتلك java.awt.Font
أشياء.
ثم ، يمكنك استخدام java.awt.Font.canDisplay(int)
للتحقق مما إذا كان يمكن عرض حرف Unicode في هذا الخط (حيث int
هو تمثيل عدد صحيح من شخصية متعددة).
نصائح أخرى
نسخة كسول:
Arrays.asList(GraphicsEnvironment.getLocalGraphicsEnvironment().getAvailableFontFamilyNames()).contains(FONT_NAME)