代码之家  ›  专栏  ›  技术社区  ›  Simon Lieschke

将SWT标签设置为斜体

  •  11
  • Simon Lieschke  · 技术社区  · 15 年前

    我该如何设计沿着以下行创建的SWT标签,使其显示为斜体?

    Label label = formToolkit.createLabel(composite, "My label name");
    
    4 回复  |  直到 9 年前
        1
  •  17
  •   McDowell rahul gupta    15 年前

    创建新的 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();
    
        2
  •  16
  •   Esteve    9 年前

    最好用一下 FontRegistry 类从 JFaces ,像这样:

    label.setFont(
        JFaceResources.getFontRegistry().getItalic(JFaceResources.DEFAULT_FONT)
    );
    
        3
  •  1
  •   VonC    9 年前

    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");
    
        4
  •  0
  •   Cjo    9 年前

    下面的代码应该有效:

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