将SWT标签设置为斜体

时间:2009-12-02 01:08:10

标签: java swt

我如何设计沿着以下线创建的SWT标签的样式,以便显示斜体?

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

4 个答案:

答案 0 :(得分:17)

创建一个新的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();

答案 1 :(得分:16)

最好使用FontRegistry中的JFaces类,如下所示:

label.setFont(
    JFaceResources.getFontRegistry().getItalic(JFaceResources.DEFAULT_FONT)
);

答案 2 :(得分:1)

recent article(2014年2月来自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");

答案 3 :(得分:0)

以下代码应该有效:

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");