viewer.getControl().addListener(SWT.MeasureItem, new Listener() {
@Override
public void handleEvent(Event event) {
TreeItem item = (TreeItem)event.item;
String text = getText(item, event.index);
Point size = event.gc.textExtent(text);
event.width = size.x;
event.height = Math.max(event.height, size.y);
}
});
在上面的代码片段中添加了监听器,但它根本没有来到handleEvent方法。
答案 0 :(得分:1)
对于TreeViewer,不要尝试添加监听器,因为这会干扰查看器的操作。
要自己绘制线条,请使用扩展OwnerDrawLabelProvider
的标签提供程序,并实施measure
,erase
和paint
方法。