StyledCellLabelProvider 不知道 SWT.BOLD 也不知道 SWT.ITALIC
StyledCellLabelProvider Does Not Know SWT.BOLD Nor SWT.ITALIC
我有一个非常标准的 StyledCellLabelProvider
,但是当我设置 StyleRanges
时,SWT.BOLD
和 SWT.ITALIC
都不会被识别(即使 JavaDoc 声明两者都是有效值) .但下划线显示正确。
我也尝试设置对象 StyleRange#font
,但没有成功。
综合示例:
public class BoldStyledCellExample extends ApplicationWindow {
public static void main(final String[] args) {
final BoldStyledCellExample example = new BoldStyledCellExample();
example.setBlockOnOpen(true);
example.open();
}
public BoldStyledCellExample() {
super(null);
}
@Override
protected Control createContents(final Composite parent) {
final TableViewer viewer = new TableViewer(parent, SWT.V_SCROLL | SWT.H_SCROLL | SWT.FULL_SELECTION);
viewer.setContentProvider(ArrayContentProvider.getInstance());
final TableViewerColumn column1 = new TableViewerColumn(viewer, SWT.LEFT);
column1.getColumn().setText("Foo");
column1.getColumn().setWidth(250);
column1.setLabelProvider(new StyledCellLabelProvider() {
@Override
public void update(final ViewerCell cell) {
final String letter = (String) cell.getElement();
cell.setText(letter);
cell.setStyleRanges(new StyleRange[] { new StyleRange(0, letter.length(), null, null, SWT.ITALIC) });
super.update(cell);
}
});
viewer.setInput(Arrays.asList("A", "B", "C", "D"));
return viewer.getTable();
}
}
因为这可能只是一个 OS 问题,我使用的是 Eclipse 3.7(但它也不适用于 4.5)和 Win10。
这里有什么问题?
我有一个非常标准的 StyledCellLabelProvider
,但是当我设置 StyleRanges
时,SWT.BOLD
和 SWT.ITALIC
都不会被识别(即使 JavaDoc 声明两者都是有效值) .但下划线显示正确。
我也尝试设置对象 StyleRange#font
,但没有成功。
综合示例:
public class BoldStyledCellExample extends ApplicationWindow {
public static void main(final String[] args) {
final BoldStyledCellExample example = new BoldStyledCellExample();
example.setBlockOnOpen(true);
example.open();
}
public BoldStyledCellExample() {
super(null);
}
@Override
protected Control createContents(final Composite parent) {
final TableViewer viewer = new TableViewer(parent, SWT.V_SCROLL | SWT.H_SCROLL | SWT.FULL_SELECTION);
viewer.setContentProvider(ArrayContentProvider.getInstance());
final TableViewerColumn column1 = new TableViewerColumn(viewer, SWT.LEFT);
column1.getColumn().setText("Foo");
column1.getColumn().setWidth(250);
column1.setLabelProvider(new StyledCellLabelProvider() {
@Override
public void update(final ViewerCell cell) {
final String letter = (String) cell.getElement();
cell.setText(letter);
cell.setStyleRanges(new StyleRange[] { new StyleRange(0, letter.length(), null, null, SWT.ITALIC) });
super.update(cell);
}
});
viewer.setInput(Arrays.asList("A", "B", "C", "D"));
return viewer.getTable();
}
}
因为这可能只是一个 OS 问题,我使用的是 Eclipse 3.7(但它也不适用于 4.5)和 Win10。
这里有什么问题?