Come definire lo stile di un'etichetta SWT creata nelle seguenti righe in modo che venga visualizzata in corsivo?Styling di un'etichetta SWT da inserire in corsivo
Label label = formToolkit.createLabel(composite, "My label name");
Come definire lo stile di un'etichetta SWT creata nelle seguenti righe in modo che venga visualizzata in corsivo?Styling di un'etichetta SWT da inserire in corsivo
Label label = formToolkit.createLabel(composite, "My label name");
Creare un nuovo oggetto 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();
Sarebbe meglio utilizzare FontRegistry
classe da JFaces
, come questo:
label.setFont(
JFaceResources.getFontRegistry().getItalic(JFaceResources.DEFAULT_FONT)
);
Va detto che questa classe helper disporrà automaticamente di tutti i caratteri richiesti. Quindi non è più necessario conservare i riferimenti per eliminarli, il che è un bel vantaggio in aggiunta alla brevità di questa soluzione. – JBert
Solo una piccola correzione: se si utilizza una stringa vuota si ottiene lo stesso effetto, il modo "corretto" per ottenere il carattere corsivo predefinito sarebbe 'getItalic (JFaceResources.DEFAULT_FONT)' –
Modificato, grazie. – Esteve
A recent article (febbraio 2014 da Jordi Böhme López) suggeriscono un altro modo per ottenere il carattere corrente al fine di modificarlo:
è come ottenere il progetto del carattere predefinito, apportare alcune modifiche e creare un nuovo carattere con il progetto modificato:
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");
sembra che devi fare qualcosa come descriptor = descriptor.setStyle (SWT.BOLD); Questo è più un metodo create() che un metodo set() –
Questa soluzione non funziona 1: 1 sfortunatamente. Non riesco a trovare la correzione neanche. – mvreijn
il metodo setStyle restituisce un nuovo descrittore di caratteri per lo stile specificato, quindi meglio descriptor = descriptor.setStyle (SWT.BOLD) ad es. – benez
Il seguente codice dovrebbe funzionare:
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");
che una specie di ridicolo, ma funziona. Grazie! –
E solo per pensare, la gente ha detto che Java era troppo prolisso –