كيف يمكنك تمكين مكافحة التعرج في تطبيقات جافا التعسفية؟

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

  •  05-07-2019
  •  | 
  •  

سؤال

لا تستخدم العديد من تطبيقات Java الخطوط المصقولة بشكل افتراضي، على الرغم من قدرة Swing على توفيرها.كيف يمكنك إجبار تطبيق جافا بشكل عشوائي على استخدام خطوط AA؟(سواء بالنسبة للتطبيقات التي أقوم بتشغيلها أو التطبيقات التي أقوم بتطويرها)

هل كانت مفيدة؟

المحلول

إذا كان لديك الوصول إلى المصدر، يمكنك القيام بذلك في الأسلوب الرئيسي:

  // enable anti-aliased text:
  System.setProperty("awt.useSystemAAFontSettings","on");

وأو، (وإذا لم يكن لديك الوصول إلى مصدر، أو إذا كان هذا هو أسهل) يمكنك ببساطة تمرير خصائص النظام أعلاه إلى JVM بإضافة هذه الخيارات إلى سطر الأوامر:

-Dawt.useSystemAAFontSettings=on

نصائح أخرى

والضوابط سوينغ في أحدث إصدارات جافا 6/7 يجب أن تلتزم تلقائيا باستخدام تفضيلات على نطاق المنظومة. (إذا كنت تستخدم ويندوز L & F على نظام التشغيل ويندوز ثم النص ينبغي أن تجعل استخدام واضحة النوع إذا كان لديك أن تمكين الإعداد على مستوى النظام.) لذلك ربما حل واحد يمكن أن يكون ببساطة: تمكين الشكل والمظهر

في التطبيقات التي كنت النامية، إذا كنت جعل النص الخاص بك مباشرة، تحتاج أيضا إلى القيام بشيء من هذا القبيل (في مرحلة ما قبل استدعاء Graphics.drawText أو الأصدقاء):

if (desktopHints == null) { 
    Toolkit tk = Toolkit.getDefaultToolkit(); 
    desktopHints = (Map) (tk.getDesktopProperty("awt.font.desktophints")); 
}
if (desktopHints != null) { 
    g2d.addRenderingHints(desktopHints); 
} 

والمرجعي: http://weblogs.java.net/blog/chet/archive /2007/01/font_hints_for.html

للعلم، لقد اكتشفت أنه في جهازي الذي يعمل بنظام Windows 7،

  • إذا لم أستخدم هذا في الكود الخاص بي، فسوف أحصل على عرض البكسل الفرعي ClearType الرائع.
  • لكن إذا استخدمت هذا، سأحصل على الحواف الكلاسيكية باللونين الأبيض والأسود والتي تكون أقبح بكثير.

لذلك يجب استخدام هذا الرمز بعناية.أعتقد أنه لن تكون هناك حاجة إليه على الإطلاق عندما يقوم جميع مستخدمي Linux بالتحديث إلى إصدارات OpenJDK التي تتعامل مع الأسماء المستعارة بشكل جيد افتراضيًا.

والشكر للمعلومات. وكنت أتساءل عن هذا بنفسي. يمكنني استخدام SoapUI (www.eviware.com) وأنها لا، افتراضيا، واستخدام AA النص. أضفت -Dawt.useSystemAAFontSettings = على -Dswing.aatext = صحيح إلى الملف الدفعي الذي تطلق عليه إلا أن ذلك لم يحدث فرقا. تخمين، أود أن أسأل في منتداهم.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top