Стилизация SWT-метки курсивом - PullRequest
11 голосов
/ 02 декабря 2009

Как бы я применил стилизацию метки SWT, созданной по следующим линиям, чтобы она отображалась курсивом?

Label label = formToolkit.createLabel(composite, "My label name");

Ответы [ 4 ]

17 голосов
/ 02 декабря 2009

Создать новый Шрифт объект.

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();
16 голосов
/ 16 августа 2013

Было бы лучше использовать FontRegistry класс из JFaces, например:

label.setFont(
    JFaceResources.getFontRegistry().getItalic(JFaceResources.DEFAULT_FONT)
);
1 голос
/ 10 февраля 2014

A недавняя статья (февраль 2014 г. от Jordi Böhme López ) предлагает другой способ получения текущего шрифта для его изменения:

это все равно что получить чертеж шрифта по умолчанию, внести некоторые изменения и создать новый шрифт с измененным планом:

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");
0 голосов
/ 14 сентября 2015

Следующий код должен работать:

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");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...