¿Cómo me gustaría diseñar una etiqueta SWT creada a lo largo de las siguientes líneas para que se muestre en cursiva?Diseñar una etiqueta SWT en cursiva
Label label = formToolkit.createLabel(composite, "My label name");
¿Cómo me gustaría diseñar una etiqueta SWT creada a lo largo de las siguientes líneas para que se muestre en cursiva?Diseñar una etiqueta SWT en cursiva
Label label = formToolkit.createLabel(composite, "My label name");
Crea un nuevo objeto Font.
Display display = new Display();
Shell shell = new Shell(display);
shell.setLayout(new GridLayout());
Label label = new Label(shell, SWT.NONE);
label.setText("I am italic");
FontData fontData = label.getFont().getFontData()[0];
Font font = new Font(display, new FontData(fontData.getName(), fontData
.getHeight(), SWT.ITALIC));
label.setFont(font);
shell.open();
while (!shell.isDisposed()) {
if (!display.readAndDispatch())
display.sleep();
}
font.dispose();
display.dispose();
Sería mejor utilizar FontRegistry
clase de JFaces
, así:
label.setFont(
JFaceResources.getFontRegistry().getItalic(JFaceResources.DEFAULT_FONT)
);
Cabe mencionar que esta clase de ayuda eliminará automáticamente todas las fuentes solicitadas. Por lo tanto, ya no es necesario guardar referencias para eliminarlos, lo que es una buena ventaja además de la brevedad de esta solución. – JBert
Solo una pequeña corrección: mientras usa una cadena vacía logra el mismo efecto, la forma "correcta" de obtener la fuente cursiva predeterminada sería 'getItalic (JFaceResources.DEFAULT_FONT)' –
Editado, gracias. – Esteve
Un recent article (febrero de 2014, frente Jordi Böhme López) sugiere otra manera de conseguir la fuente actual con el fin de modificarlo:
es como obtener el plano de la fuente predeterminada, hacer algunos cambios y construir una nueva fuente con el plano modificado:
Label label = new Label(parent, SWT.NONE);
FontDescriptor descriptor = FontDescriptor.createFrom(label.getFont());
// setStyle method returns a new font descriptor for the given style
descriptor = descriptor.setStyle(SWT.BOLD);
label.setFont(descriptor.createFont(label.getDisplay));
label.setText("Bold Label");
parece que tiene que hacer algo como descriptor = descriptor.setStyle (SWT.BOLD); Esto es más un método create() que un set() –
Desafortunadamente, esta solución no funciona 1: 1. No puedo encontrar la solución tampoco. – mvreijn
el método setStyle devuelve un nuevo descriptor de fuente para el estilo dado, así que mejor descriptor = descriptor.setStyle (SWT.BOLD) p. Ej. – benez
El código siguiente debería funcionar:
Label lblSample = new Label(shell, SWT.BORDER_SOLID);
lblSample.setFont(new org.eclipse.swt.graphics.Font(null, "Times New Roman", 12, SWT.BOLD | SWT.ITALIC));
lblSample.setText("Enter Text Here");
Eso es un poco ridículo, pero funciona. ¡Gracias! –
Y solo para pensar, la gente dijo que Java era demasiado detallado –