我正在尝试构建一个SWT树,它在顶层有图标但不在下一层。
有没有办法避免似乎留给我不使用的图像的空白区域?我尝试使用以下代码片段,但都没有做我想要的。
SWT.MeasureItem:
tree.addListener(SWT.MeasureItem, new Listener()
{
@Override
public void handleEvent(Event event)
{
TreeItem item = (TreeItem)event.item;
Image image = item.getImage();
if (image == null)
{
event.x -= 40;
}
}
});
SWT.PaintItem:
tree.addListener(SWT.PaintItem, new Listener()
{
@Override
public void handleEvent(Event event) {
TreeItem item = (TreeItem)event.item;
Image image = item.getImage();
if (image == null)
{
event.x -= 40;
}
}
});
在这两种情况下,我只是希望文本可以在左侧进一步绘制。
答案 0 :(得分:2)
此行为来自本机控件,并且是特定于操作系统的(AFAIR,在Mac上您不会看到此问题)。唉,没有简单的修复,但添加一些通用图标(或根本不添加图标)。
答案 1 :(得分:1)
我自己做了一些调查。根据尤金的回答,这似乎是本土行为。有几点值得注意。
如果树中的项目没有图标,则图标不会留有空间。但是,即使带有图标的单个项目也会导致所有项目留出图标空间。
hacky解决方案可以实现如下:
这可能不适用于跨平台和跨系统字体,所以我决定忍受有图标。