SWT

2009-09-20 11 views
23

में केवल फ़ॉन्ट आकार बदलें मुझे लेबल में से किसी एक के लिए एक बड़ा फ़ॉन्ट उपयोग करने की आवश्यकता है।SWT

label.setFont(new Font(display,"Arial", 14, SWT.BOLD)); 

लेकिन जाहिर है एरियल हमेशा डिफ़ॉल्ट फ़ॉन्ट नहीं है। मैं सिर्फ आकार बदलना चाहता हूं और बाकी सब कुछ डिफ़ॉल्ट मानों पर रखना चाहता हूं। अन्य मानकों की स्थापना से बचने के लिए

label.setFontSize(14); 

की तरह कुछ

मैं कर सकता हूँ? या क्या मैं कम से कम उस फ़ॉन्ट का नाम ढूंढ सकता हूं जिसका वास्तव में डिफ़ॉल्ट रूप से उपयोग किया जा रहा है?

उत्तर

35

मैं तुम्हें जब तक की तरह

FontData[] fD = label.getFont().getFontData(); 
fD[0].setHeight(16); 
label.setFont(new Font(display,fD[0])); 

कुछ कर सकते हैं एक से अधिक फ़ॉन्ट दिया जाता है, कि काम करना चाहिए के रूप में विश्वास करते हैं।

31

आप निम्न कर सकते हैं:

FontData[] fontData = label.getFont().getFontData(); 
for(int i = 0; i < fontData.length; ++i) 
    fontData[i].setHeight(14); 

final Font newFont = new Font(display, fontData); 
label.setFont(newFont); 

// Since you created the font, you must dispose it 
label.addDisposeListener(new DisposeListener() { 
    public void widgetDisposed(DisposeEvent e) { 
     newFont.dispose(); 
    } 
}); 
+1

निपटाने (छवि) कोई मतलब नहीं है और शायद एक कॉपी और पेस्ट त्रुटि है – mkdev

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