2008-10-07 8 views
47

स्विंग की क्षमता प्रदान करने के बावजूद कई जावा ऐप्स डिफ़ॉल्ट रूप से एंटी-एलाइज्ड फोंट का उपयोग नहीं करते हैं। एए फोंट का उपयोग करने के लिए आप मनमाने ढंग से जावा एप्लिकेशन कैसे कर सकते हैं? (दोनों और अनुप्रयोगों मैं चल रहा हूँ अनुप्रयोगों के लिए मैं विकासशील हूँ)आप मनमाने ढंग से जावा ऐप्स में एंटी एलियासिंग कैसे सक्षम करते हैं?

उत्तर

70

आप स्रोत के लिए उपयोग किया है, तो आप मुख्य विधि में ऐसा कर सकते हैं:

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

या, (और यदि आप स्रोत के लिए पहुँच नहीं है, या अगर यह आसान है) तो आप बस प्रणाली गुण ऊपर JVM में कमांड लाइन के लिए इन विकल्पों को जोड़कर पारित कर सकते हैं: जानकारी के लिए

-Dawt.useSystemAAFontSettings=on -Dswing.aatext=true 
+1

+1 हर दिन मैं कुछ नया सीखता हूं। धन्यवाद! – Rekin

+0

यह विधि सबस्टेंस देखो और महसूस करने के लिए काम नहीं करती है, क्या आपको इसके बारे में पता है? –

+0

यह 'ग्राफिक्स # paintString (स्ट्रिंग, पूर्णांक, पूर्णांक) के लिए काम नहीं करता है' – Supuhstar

0

धन्यवाद। मैं इस बारे में सोच रहा था। मैं सोपूआई (www.eviware.com) का उपयोग करता हूं और यह डिफ़ॉल्ट रूप से एए टेक्स्ट का उपयोग नहीं करता है। मैंने -Dawt.useSystemAAFontSettings = on -Dswing.aatext = बैच फ़ाइल को सही किया है जो इसे लॉन्च करता है लेकिन इससे कोई फर्क नहीं पड़ता। मान लीजिए, मुझे अपने मंच में पूछना है।

+0

देखें यह जेवीएम की बजाय एप्लिकेशन से संबंधित तर्कों की व्याख्या कर सकता है - आपको बैट फ़ाइल में थोड़ा गहराई से खोदने की आवश्यकता हो सकती है। (या यह सभी ऐप्स के लिए काम नहीं कर सकता है ... यदि हां, तो कृपया मुझे बताएं/मेरे उत्तर को वोट दें ..) – rcreswick

+1

मैं .sh लॉन्च फ़ाइल को संपादित करके इसे काम करने में सक्षम था ताकि अंतिम पंक्ति पढ़ी जा सके: java -Dawt.useSystemAAFontSettings = on -Dswing.aatext = true -Dsoapui.properties = soapui.properties -Dgroovy.source.encoding = iso-8859-1 -cp $ SOAPUI_CLASSPATH com.eviware.soapui.SoapUIPro $ * – rcreswick

+1

मुझे विश्वास है कि आप -डी जोड़कर सोपाई बल्ले फ़ाइल के साथ ऐसा ही कर सकता है ....JAVA_OPTS लाइन में सूचीबद्ध पैराम्स, या सिर्फ JAVA_OPTS = -Dawt.useSystemAAFontSettings = on -Dswing.aatext = आसपास के वातावरण में सत्य – rcreswick

6

रिकॉर्ड के लिए, मैं बाहर है कि मेरे खिड़कियों में 7 मशीन,

  • अगर मैं अपने कोड में इसके उपयोग नहीं है, मैं अच्छा ClearType उपपिक्सेल प्रतिपादन मिल पाया है।
  • लेकिन अगर मैं इस का उपयोग, मैं शास्त्रीय काले और सफेद एंटीलायज़िंग़ जो बहुत भद्दा है मिलता है।

तो इस कोड को ध्यान से इस्तेमाल किया जाना चाहिए। मुझे लगता है कि यह आवश्यक होने पर रोकना बंद कर देगा जब सभी लिनक्स उपयोगकर्ताओं ने ओपनजेडीके के संस्करणों में अद्यतन किया है जो डिफ़ॉल्ट रूप से अलियासिंग को अच्छी तरह से संभालते हैं।

जावा 6/7 के नवीनतम संस्करण में
+7

से पहले तर्क जोड़ने की आवश्यकता है System.setProperty ("awt.useSystemAAFontSettings", "lcd") आज़माएं; और आपको ClearType प्राप्त करना चाहिए। – Domchi

+0

एक लिनक्स और विंडोज उपयोगकर्ता के रूप में मुझे "क्लीयरटाइप" पसंद नहीं है। मैं जानबूझकर इसे अक्षम करता हूं। – Wyatt8740

7

घुमाओ नियंत्रण स्वचालित रूप से सिस्टम व्यापी प्राथमिकताएं का पालन करना चाहिए। (यदि आप Windows एल & पर एक Windows OS एफ उपयोग कर रहे हैं तो पाठ ClearType का उपयोग कर प्रस्तुत करना चाहिए, यदि आप उस सेटिंग सक्षम की सिस्टम-वाइड।) तो शायद एक ही समाधान बस जा सकता है: देशी देखो सक्षम और इच्छा है?

अनुप्रयोगों आप विकसित कर रहे हैं, अगर आप सीधे अपना स्वयं का पाठ प्रस्तुत करना, आप यह भी (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

संबंधित मुद्दे