2009-09-20 12 views
23

Potrzebuję użyć większej czcionki dla jednej z etykiet.Zmień tylko rozmiar czcionki w SWT

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

, ale oczywiście Arial nie zawsze jest czcionką domyślną. Chcę zmienić tylko rozmiar i zachować wszystkie inne wartości domyślne.

mogę zrobić coś

label.setFontSize(14); 

uniknąć ustawiania innych parametrów? A może przynajmniej poznam nazwę czcionki, która jest aktualnie używana jako domyślna?

Odpowiedz

35

wierzę mógłby zrobić coś jak

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

Dopóki nie więcej niż jednej czcionki jest zwracany, że powinno działać.

31

można wykonać następujące czynności:

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

rozporządzania (obraz) nie ma sensu i jest prawdopodobnie błąd kopiowania i wklejania – mkdev