将SWT标签设置为斜体

Sim*_*hke 11 java swt

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

Label label = formToolkit.createLabel(composite, "My label name");
Run Code Online (Sandbox Code Playgroud)

McD*_*ell 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();
Run Code Online (Sandbox Code Playgroud)

  • 这有点荒谬,但它确实有效.谢谢! (8认同)
  • 而且只是想想,人们说Java过于冗长 (3认同)

Est*_*eve 16

最好使用FontRegistryclass from JFaces,如下所示:

label.setFont(
    JFaceResources.getFontRegistry().getItalic(JFaceResources.DEFAULT_FONT)
);
Run Code Online (Sandbox Code Playgroud)

  • 只是一个小小的修正:当使用空字符串达到相同的效果时,获得默认斜体字体的"正确"方法是`getItalic(JFaceResources.DEFAULT_FONT)` (2认同)