2009-09-20 12 views
23

Necesito usar una fuente más grande para una de las etiquetas.Cambiar solo el tamaño de fuente en SWT

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

pero obviamente Arial no siempre es la fuente predeterminada. Quiero cambiar solo el tamaño y mantener todo lo demás en los valores predeterminados.

¿Puedo hacer algo como

label.setFontSize(14); 

, para evitar ajustar los demás parámetros? ¿O puedo, al menos, averiguar el nombre de la fuente que se está utilizando como predeterminada?

Respuesta

35

Creo que se podría hacer algo como

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

Mientras no más de una fuente se devuelve, que debería funcionar.

31

Usted puede hacer lo siguiente:

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

dispose (imagen) no tiene sentido y es probablemente un error de copiar y pegar – mkdev

Cuestiones relacionadas