我將如何對沿着以下幾行創建的SWT標籤進行造型,使其顯示爲斜體?將SWT標籤設計爲斜體
Label label = formToolkit.createLabel(composite, "My label name");
我將如何對沿着以下幾行創建的SWT標籤進行造型,使其顯示爲斜體?將SWT標籤設計爲斜體
Label label = formToolkit.createLabel(composite, "My label name");
創建一個新的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();
這將是更好地使用FontRegistry
類從JFaces
,像這樣:
label.setFont(
JFaceResources.getFontRegistry().getItalic(JFaceResources.DEFAULT_FONT)
);
一個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");
下面的代碼應該工作:
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");
這是很荒謬的,但它的工作原理。謝謝! – 2011-09-27 14:36:29
只是想,人們說Java太冗長了 – 2015-04-01 17:09:02